力扣-贪心-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;
    }
};
相关推荐
小森776721 分钟前
(七)深度学习---神经网络原理与实现
人工智能·深度学习·神经网络·算法
迷茫不知归路39 分钟前
操作系统实验习题解析 上篇
c++·算法·操作系统·实验课设
愚润求学1 小时前
【递归、搜索与回溯】专题一:递归(二)
c++·笔记·算法·leetcode
水水沝淼㵘1 小时前
嵌入式开发学习日志(数据结构--顺序结构单链表)Day19
linux·服务器·c语言·数据结构·学习·算法·排序算法
June`2 小时前
专题四:综合练习( 找出所有子集的异或总和再求和)
c++·算法·深度优先·剪枝
Magnum Lehar2 小时前
3d游戏引擎的Utilities模块实现下
c++·算法·游戏引擎
JANYI20182 小时前
C语言易混淆知识点详解
java·c语言·算法
绒绒毛毛雨3 小时前
广告推荐算法入门 day1 --项目选型
算法·推荐算法
越城3 小时前
数据结构中的栈与队列:原理、实现与应用
c语言·数据结构·算法
wang__123004 小时前
力扣2094题解
算法·leetcode·职场和发展