Problem 2811

mail@pastecode.io avatar
unknown
typescript
a year ago
1.3 kB
3
Indexable
Never
function canSplitArray(nums: number[], m: number): boolean {
    const n = nums.length;
    if(n <= 2) {
        return true;
    }
    for(let i = 0; i < n - 1; i++) {
        if(nums[i] + nums[i+1] >= m) {
            return true;
        }
    }
    return false;
};

// function canSplitArray(nums: number[], m: number): boolean {
//     const n = nums.length;
//     if(n <= 2) {
//         return true;
//     }
//     let sum = nums.reduce((a, b) => a + b);
//     const memo: boolean[][] = [...Array(n)].map(a => Array(n).fill(undefined));
//     return splitArray(nums, 0, n - 1, sum, m, memo);
// };

// function splitArray(nums: number[], left: number, right: number, sum: number, m: number, memo: boolean[][]) {
//     if(memo[left][right] !== undefined) {
//         return memo[left][right];
//     }
//     if(left >= right) {
//         memo[left][right] = true;
//         return true;
//     }
//     if(sum < m) {
//         memo[left][right] = false;
//         return false;
//     }
//     let l = nums[left], r = nums[right];
//     memo[left+1][right] = splitArray(nums, left+1, right, sum-l, m, memo);
//     memo[left][right-1] = splitArray(nums, left, right-1, sum-r, m, memo);
//     return memo[left+1][right] || memo[left][right-1];
// }