2369. 檢查數組是否存在有效劃分
題目鏈接:2369. 檢查數組是否存在有效劃分
代碼如下:
//動態規劃
class Solution {
public:bool validPartition(vector<int>& nums) {vector<int> dp(nums.size()+1,false);//dp[i]表示前i個元素組成的數組是否至少存在一個有效劃分dp[0]=true;for(int i=1;i<=nums.size();i++){if(i>=2){dp[i]=dp[i-2]&&(nums[i-2]==nums[i-1]);}if(i>=3){bool flag=(nums[i-3]==nums[i-2]&&nums[i-3]==nums[i-1])||(nums[i-3]+1==nums[i-2]&&nums[i-2]+1==nums[i-1]);dp[i]=dp[i]||(dp[i-3]&&flag);//或是一個true即為true}}return dp[nums.size()];}
};