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

leetcode376-摆动序列

leetcode 376

思路

变量定义:
  • prediff:记录上一次相邻元素的差值。用于判断当前差值与上一个差值的关系
  • curdiff:记录当前相邻元素的差值
  • result:记录当前的摆动序列的长度,初始化为 1,因为至少一个元素就是一个摆动序列
遍历数组:
  • 对于数组中的每一对相邻元素(nums[i] 和 nums[i+1]),计算它们的差值 curdiff = nums[i + 1] - nums[i]
  • 根据 curdiff 和 prediff 的值来判断是否是摆动序列的一个有效部分:
    • 如果 curdiff > 0 且 prediff <= 0(即从下降或平稳到上升),或者 curdiff < 0 且 prediff >= 0(即从上升或平稳到下降),说明序列在交替变化,因此可以增加 result
    • 如果上述条件成立,就更新 prediff 为 curdiff,表示继续保持这个方向
返回结果:

遍历完成后,返回 result,即最长摆动序列的长度

关键点:
  • 通过使用 prediff 和 curdiff 来追踪当前和之前的差值,确保每次相邻的元素严格交替增长或减少。
  • 通过贪心策略,每次遇到有效的摆动时就增加结果长度

实现

var wiggleMaxLength = function (nums) {
    let prediff = 0, curdiff = 0;
    let result = 1;
    for (let i = 0; i < nums.length - 1; i++) {
        curdiff = nums[i + 1] - nums[i]
        if (curdiff > 0 && prediff <= 0 || curdiff < 0 && prediff >= 0){
            result++;
            prediff = curdiff
        }
    }
    return result;
};

相关文章:

  • 【Spring Cloud Netflix】GateWay服务网关
  • CISCO路由器配置DHCP及中继
  • Android学习总结之service篇
  • Linux file命令
  • Linux Terminal Mode | canonical / nocanonical / cbreak / raw
  • 【35期获取股票数据API接口】如何用Python、Java等五种主流语言实例演示获取股票行情api接口之沪深A股当天分价成交占比数据及接口API说明文档
  • 结构化需求分析:专业方法论与实践
  • 简单线程池实现
  • PDF转安卓APP软件, 支持加密添加一机一码, 静态密码, 保护APK版权使用说明和CSDN文库下载
  • [C++面试] explicit关键字面试点总结
  • 安装nfs客户端(centos)
  • Go语言-初学者日记(二):数组、切片与 map,一篇彻底弄懂集合类型!
  • 体育风暴篮球足球体育球员综合资讯网站模板
  • Python多线程编程​​ 和 ​​JVM调优
  • C语言查漏补缺:占位符篇
  • JavaScript中的Proxy详解
  • CUDA GPU 学习资源
  • 第三方软件测试服务公司分享:功能测试和性能测试的区别与联系
  • 小型园区组网图
  • AlDente Pro for Mac电脑 充电限制保护工具
  • 自己做的网站如何管理/seo关键词排名公司
  • 合肥酒店团购网站建设/南宁seo推广外包
  • FileZilla做网站/青岛新闻最新消息
  • 兰州网新公司/厦门seo排名优化方式
  • 常见的网络营销策略都有哪些/seo站
  • 建筑网建筑规范大全/软件排名优化