摆动序列【贪心算法】

  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;
    }
}
相关推荐
学高数就犯困17 分钟前
性能优化:LRU缓存(清晰易懂带图解)
算法
CoovallyAIHub3 小时前
CVPR 2026 | MixerCSeg:仅2.05 GFLOPs刷新四大裂缝分割基准!解耦Mamba隐式注意力,CNN+Transformer+Mamba三
深度学习·算法·计算机视觉
CoovallyAIHub3 小时前
YOLO26-Pose 深度解读:端到端架构重新设计,姿态估计凭什么跨代领先?
深度学习·算法·计算机视觉
CoovallyAIHub4 小时前
化工厂气体泄漏怎么用AI检测?30张图3D重建气体泄漏场景——美国国家实验室NeRF新研究
深度学习·算法·计算机视觉
颜酱15 小时前
图的数据结构:从「多叉树」到存储与遍历
javascript·后端·算法
zone773921 小时前
006:RAG 入门-面试官问你,RAG 为什么要切块?
后端·算法·面试
CoovallyAIHub1 天前
OpenClaw 近 2000 个 Skills,为什么没有一个好用的视觉检测工具?
深度学习·算法·计算机视觉
CoovallyAIHub1 天前
CVPR 2026 | 用一句话告诉 AI 分割什么——MedCLIPSeg 让医学图像分割不再需要海量标注
深度学习·算法·计算机视觉
CoovallyAIHub1 天前
Claude Code 突然变成了 66 个专家?这个 5.8k Star 的开源项目,让我重新理解了什么叫"会用 AI"
深度学习·算法·计算机视觉
兆子龙1 天前
前端哨兵模式(Sentinel Pattern):优雅实现无限滚动加载
前端·javascript·算法