Check if There is a Valid Partition For The Array LeetCode solution in JavaScript

1
var validPartition = function (nums) {
2
let n = nums.length,
3
memo = Array(n).fill(-1);
4
return dp(0);
5

6
function dp(i) {
7
if (i === n) return true;
8
if (i === n - 1) return false;
9
if (memo[i] !== -1) return memo[i];
10

11
if (nums[i] === nums[i + 1] && dp(i + 2)) return (memo[i] = true);
12
if (i < n - 2) {
13
if (!dp(i + 3)) return (memo[i] = false);
14
let hasThreeEqual =
15
nums[i] === nums[i + 1] && nums[i + 1] === nums[i + 2];
16
let hasThreeConsecutive =
17
nums[i] + 1 === nums[i + 1] && nums[i + 1] + 1 === nums[i + 2];
18
if (hasThreeEqual || hasThreeConsecutive) return (memo[i] = true);
19
}
20
return (memo[i] = false);
21
}
22
};

0

WPM •0 •0

100%

ACC •0 •0

0s

TIME •0