解题思路

LeetCode---376.摆动序列_c语言

LeetCode---376.摆动序列_i++_02


LeetCode---376.摆动序列_i++_03


LeetCode---376.摆动序列_c++_04

示例代码

class Solution {
public:
    int wiggleMaxLength(vector<int>& nums) {
        int len=nums.size();
        vector<int> up(len+1),down(len+1);
        up[1]=down[1]=1;
        for(int i=2;i<=len;i++){
            if(nums[i-1]>nums[i-2]){
                up[i]=max(up[i-1],down[i-1]+1);
                down[i]=down[i-1];
            }else if(nums[i-1]<nums[i-2]){
                up[i]=up[i-1];
                down[i]=max(up[i-1]+1,down[i-1]);
            }else{
                up[i]=up[i-1];
                down[i]=down[i-1];
            }
        }
        return max(up[len],down[len]);
    }
};

效果展示

LeetCode---376.摆动序列_示例代码_05