力扣-贪心-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;
    }
};
相关推荐
Brookty42 分钟前
【算法】堆排序
数据结构·算法
张彦峰ZYF2 小时前
高频面试题(含笔试高频算法整理)基本总结回顾63
linux·运维·算法
alphaTao3 小时前
LeetCode 每日一题 2025/3/31-2025/4/6
算法·leetcode
Andrew_Ryan3 小时前
android use adb instsll cacerts
算法·架构
Wx120不知道取啥名4 小时前
C语言跳表(Skip List)算法:数据世界的“时光穿梭机”
c语言·数据结构·算法·list·跳表算法
禾小西5 小时前
Java 逐梦力扣之旅_[204. 计数质数]
java·算法·leetcode
LuckyLay5 小时前
LeetCode算法题(Go语言实现)_32
算法·leetcode·golang
ゞ 正在缓冲99%…5 小时前
leetcode295.数据流的中位数
java·数据结构·算法·leetcode·
文弱_书生5 小时前
关于点扩散函数小记
数码相机·算法·数学原理
爪娃侠5 小时前
LeetCode热题100记录-【二叉树】
linux·算法·leetcode