代码随想录:摆动序列

class Solution {
public:
    int wiggleMaxLength(vector<int>& nums) {
        if (nums.size() <= 1)
            return nums.size();

        int res = 1;
        int prediff = 0;
        int curdiff = 0;

//prediff=0的情况仅在第一次进入循环的时候可能出现
        for (int i = 1; i < nums.size(); i++) {
            curdiff = nums[i] - nums[i - 1];
            if ((prediff <= 0 && curdiff > 0) ||
                (prediff >= 0 && curdiff < 0)) {
                res++;
                prediff = curdiff;
            }
        }

        return res;
    }
};
posted @ 2025-01-28 11:27  huigugu  阅读(9)  评论(0)    收藏  举报