376. Wiggle Subsequence

    xiaoxiao2021-03-25  102

    DP问题,两次AC,第一次问题还是出现在初始情况的判断上面。 DP方程为:

    if(nums[i]<nums[j]) dpUp[i]=max(dpUp[i],1+dpDown[j]); else if(nums[i]>nums[j]) dpDown[i]=max(dpDown[i],1+dpUp[j]);

    最终AC代码

    class Solution { public: int wiggleMaxLength(vector<int>& nums) { if(nums.size()<=1) return nums.size(); int maxLength=0; vector<int> dpUp(nums.size(),1); vector<int> dpDown(nums.size(),1); for(int i=nums.size()-2;i>=0;i--) { for(int j=i+1;j<nums.size();j++) { if(nums[i]<nums[j]) dpUp[i]=max(dpUp[i],1+dpDown[j]); else if(nums[i]>nums[j]) dpDown[i]=max(dpDown[i],1+dpUp[j]); else{} } maxLength=max(maxLength,dpUp[i]); maxLength=max(maxLength,dpDown[i]); } return maxLength; } };
    转载请注明原文地址: https://ju.6miu.com/read-14165.html

    最新回复(0)