力扣-贪心-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;
    }
};
相关推荐
北_鱼1 小时前
支持向量机(SVM):算法讲解与原理推导
算法·机器学习·支持向量机
MZWeiei3 小时前
PTA:运用顺序表实现多项式相加
算法
GISer_Jing3 小时前
Javascript排序算法(冒泡排序、快速排序、选择排序、堆排序、插入排序、希尔排序)详解
javascript·算法·排序算法
cookies_s_s3 小时前
Linux--进程(进程虚拟地址空间、页表、进程控制、实现简易shell)
linux·运维·服务器·数据结构·c++·算法·哈希算法
不想编程小谭3 小时前
力扣LeetCode: 2506 统计相似字符串对的数目
c++·算法·leetcode
水蓝烟雨4 小时前
[HOT 100] 2187. 完成旅途的最少时间
算法·hot 100
01_5 小时前
力扣hot100——LRU缓存(面试高频考题)
leetcode·缓存·面试·lru
菜鸟一枚在这5 小时前
深度解析建造者模式:复杂对象构建的优雅之道
java·开发语言·算法
gyeolhada5 小时前
2025蓝桥杯JAVA编程题练习Day5
java·数据结构·算法·蓝桥杯
阿巴~阿巴~5 小时前
多源 BFS 算法详解:从原理到实现,高效解决多源最短路问题
开发语言·数据结构·c++·算法·宽度优先