摆动序列【贪心算法】

  1. 摆动序列
    如果连续数字之间的差严格地在正数和负数之间交替,则数字序列称为 摆动序列 。第一个差(如果存在的话)可能是正数或负数。仅有一个元素或者含两个不等元素的序列也视作摆动序列。
java 复制代码
class Solution {
    public int wiggleMaxLength(int[] nums) {
        if(nums.length <= 1) {//特殊情况处理,<2的情况统一处理
            return nums.length;
        }
        int cur = 0;
        int pre = 0;//默认造一个平波,易于与后面满足if条件更新数据的形式保持统一
        int count = 1;//(默认,结尾必然存在一个波动,从1开始)

        for (int i = 0; i < nums.length - 1; i++) {
            cur = nums[i + 1] - nums[i];//注意需要根据前后的正负号及逆行判别
            if (pre >= 0 && cur < 0 || pre <= 0 && cur > 0) {
                count++;
                pre = cur;//在if里面,保证了只有发生波动时才进行更新pre的值(主要关注其正负号)
            }
        }
        return count;
    }
}
相关推荐
白狐_79836 分钟前
408数据结构第5章:树与二叉树②——遍历、线索树、森林与哈夫曼
数据结构·算法·深度优先
致Great4 小时前
科研人的 AI,不该只回答问题:我用字节TraeWork 跑了一遍真实研究任务
算法
纵有疾風起4 小时前
线性表的定义与基本操作 — 从逻辑结构到 ADT 接口
数据结构·算法·408·线性表·adt
测试_AI_一辰5 小时前
AI Agent 评测最隐蔽的坑-记忆
人工智能·算法·ai·自动化·ai编程
lucas_AI5 小时前
给YOLO检测器插 LoRA,'插对地方'比'插什么'更要命
人工智能·算法
LuminousCPP5 小时前
数据结构-时间与复杂度|时间/空间复杂度 + 两道力扣练习 + 二分查找复盘
c语言·数据结构·经验分享·算法·leetcode
Nil2085 小时前
leetcode 三数之和
数据结构·算法·leetcode
小小龙学IT6 小时前
C++ std::vector 底层实现深度解析:内存布局、扩容策略、移动语义与迭代器失效
开发语言·c++·算法
noipp6 小时前
推荐题目:洛谷 P16689 出征
java·开发语言·数据结构·c++·算法·洛谷·luogu
eBest数字化转型方案6 小时前
从工程视角拆解冰柜资产管理:拍照识别 pipeline、纯净度算法与 IoT 选型踩坑
人工智能·物联网·算法