Problem 2811
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]; // }