//来自 Aging
class Solution {
public:
bool validPartition(vector<int>& nums) {
int N = nums.size();
vi dp(N + 1, false);
dp[0] = true;
REP(i, N) {
if (i >= 1 && nums[i - 1] == nums[i]) dp[i + 1] |= dp[i - 1];
if (i >= 2 && nums[i - 2] == nums[i - 1] && nums[i - 1] == nums[i]) dp[i + 1] |= dp[i - 2];
if (i >= 2 && nums[i - 2] + 1 == nums[i - 1] && nums[i - 1] + 1 == nums[i]) dp[i + 1] |= dp[i - 2];
}
return dp[N];
}
};
11-02
448