力扣-贪心-376 摆动序列

思路

记录前一个差值和后一个差值,需要分析很多情况

  1. 只有在发生波动的时候才更新差值------单调中有平坡
  2. 前一个差值==0时也更新差值------平坡留下最左边元素
  3. 最后一个元素不记录.默认从最后一个有坡度

代码

cpp 复制代码
class Solution {
public:
    int wiggleMaxLength(vector<int>& nums) {
        int res = 1;
        int preDiff = 0;
        for(int i = 0; i < nums.size() - 1; i++){
            int curDiff = nums[i + 1] - nums[i];
            if(preDiff <= 0 && curDiff > 0 || preDiff >= 0 && curDiff < 0){
                res++;
                preDiff = curDiff;
            }
        }

        return res;
    }
};
相关推荐
CHANG_THE_WORLD1 小时前
金字塔降低采样
算法·金字塔采样
不知天地为何吴女士3 小时前
Day32| 509. 斐波那契数、70. 爬楼梯、746. 使用最小花费爬楼梯
算法
小坏坏的大世界3 小时前
C++ STL常用容器总结(vector, deque, list, map, set)
c++·算法
励志要当大牛的小白菜6 小时前
ART配对软件使用
开发语言·c++·qt·算法
qq_513970446 小时前
力扣 hot100 Day56
算法·leetcode
PAK向日葵7 小时前
【算法导论】如何攻克一道Hard难度的LeetCode题?以「寻找两个正序数组的中位数」为例
c++·算法·面试
爱喝矿泉水的猛男9 小时前
非定长滑动窗口(持续更新)
算法·leetcode·职场和发展
YuTaoShao9 小时前
【LeetCode 热题 100】131. 分割回文串——回溯
java·算法·leetcode·深度优先
YouQian77210 小时前
Traffic Lights set的使用
算法
go546315846511 小时前
基于深度学习的食管癌右喉返神经旁淋巴结预测系统研究
图像处理·人工智能·深度学习·神经网络·算法