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

1
// Time O(n)
2
// Space O(n)
3
class Solution {
4
public boolean validPartition(int[] nums) {
5
boolean[] dp = new boolean[nums.length + 1];
6
dp[0] = true; // base case
7
for (int i = 2; i <= nums.length; i++) {
8
dp[i] |= nums[i - 1] == nums[i - 2] && dp[i - 2]; // cond 1
9
dp[i] |=
10
i > 2 && nums[i - 1] == nums[i - 2] && nums[i - 2] == nums[i - 3] && dp[i - 3]; // cond 2
11
dp[i] |=
12
i > 2
13
&& nums[i - 1] - nums[i - 2] == 1
14
&& nums[i - 2] - nums[i - 3] == 1
15
&& dp[i - 3]; // cond 3
16
}
17
return dp[nums.length];
18
}
19
}

0

WPM •0 •0

100%

ACC •0 •0

0s

TIME •0