[LeetCode] Wiggle Subsequence 摆动子序列 动态规划O(N)解法

    xiaoxiao2026-05-03  4

    int wiggleMaxLength(vector<int>& nums) {                  if(nums.size() < 2)         return nums.size();                  vector<int> dp1(nums.size(), 0); vector<int> dp2(nums.size(), 0); dp1[0] = 1; dp2[0] = 1; for(int i=1; i<nums.size(); i++) { if(nums[i] > nums[i-1]) { dp1[i] = dp2[i-1] + 1; dp2[i] = dp2[i-1]; } else if(nums[i] < nums[i-1]) { dp2[i] = dp1[i-1] + 1; dp1[i] = dp1[i-1]; } else { dp2[i] = dp2[i-1]; dp1[i] = dp1[i-1]; } } return (dp1[nums.size()-1] > dp2[nums.size()-1] ? dp1[nums.size()-1] : dp2[nums.size()-1]);     }
    转载请注明原文地址: https://ju.6miu.com/read-1309322.html
    最新回复(0)