当前位置: 首页 > article >正文

LeetCode376 摆动序列

前言

题目: 376. 摆动序列
文档: 代码随想录——摆动序列
编程语言: C++
解题状态: 搞错方向

思路

本质上是考虑序列的峰值个数,需要看到问题的本质。边界情况是出现平坡的情况。

代码

class Solution {
public:
    int wiggleMaxLength(vector<int>& nums) {
        if (nums.size() <= 1) return nums.size();
        int maxLen = 1;
        int curDiff = 0;
        int preDiff = 0;
        for (int i = 0; i < nums.size() - 1; i++) {
            curDiff = nums[i + 1] - nums[i];
            if ((preDiff <= 0 && curDiff > 0) || (preDiff >= 0 && curDiff < 0)) {
                maxLen++;
                preDiff = curDiff;
            }
        }

        return maxLen;
    }
};

http://www.kler.cn/a/291224.html

相关文章:

  • Jenkins-持续集成、交付、构建、部署、测试
  • docker+ffmpeg+nginx+rtmp 拉取摄像机视频
  • Python入门教程 —— 网络编程
  • 个人博客搭建(二)—Typora+PicGo+OSS
  • Agentic RAG 解释
  • 【Arm】Arm 处理器的半主机(semihosting)机制
  • Spring中使用ResponseStatusExceptionResolver处理HTTP异常响应码
  • 基于Tomcat的JavaWeb(ASP)项目构建(图解)
  • 【AIGC】MimicMotion:姿态引导的高质量人体运动视频生成技术
  • C8T6超绝模块--LED
  • PCL 移动立方体三维重建——RBF算法【2024最新版】
  • 英伟达AI超级计算机SuperPod:H100→GH200→GB200
  • 快速搭建本地 Whisper 语音识别大模型
  • 大数据技术生态体系
  • OpenAI 联合创始人的 AI 安全公司 SSI 筹集 10 亿美元资金|TodayAI
  • 数据结构——归并排序
  • npm npx 慢?
  • 【虚拟化】KVM常用命令操作(virsh磁盘管理)
  • RocketMQ安装与使用
  • Java中的重载感悟
  • IOS 23 实现通用WebView控制器(WKWebView)
  • HarmonyOS开发实战( Beta5版)使用reuseId标记不同组件提升复用性能实践
  • priority_queue和reverse_iterator的底层实现
  • MySQL数据备份的版本控制:策略、实践与自动化
  • 机器学习引领未来:赋能精准高效的图像识别技术革新
  • 基于JavaWeb开发的JavaSpringboot+Vue实现前后端分离房屋租赁系统