摆动序列

  • 题目
  • 大致思路
  • 代码实现

题目

  • 摆动序列:如果连续数字之间的差严格地在正数和负数之间交替,则数字序列称为摆动序列。第一个差(如果存在的话)可能是正数或负数。少于两个元素的序列也是摆动序列。
  • 给定一个整数序列,返回作为摆动序列的最长子序列的长度。 通过从原始序列中删除一些(也可以不删除)元素来获得子序列,剩下的元素保持其原始顺序。
输入: [1,7,4,9,2,5]
输出: 6
解释: 整个序列均为摆动序列。输入: [1,17,5,10,13,15,10,5,16,8]
输出: 7
解释: 这个序列包含几个长度为 7 摆动序列,其中一个可为[1,17,10,13,10,16,8]。输入: [1,2,3,4,5,6,7,8,9]
输出: 2

大致思路

  1. 如果这序列是一个单调序列,则返回结果2,需要对比,对比至少需要2个元素。
  2. 如果是空序列或者只有一个数的序列,则返回0和1
  3. 因为可以删除任意元素,因此我们只需要一个遍历就可以完成计算,复杂度为O(N)
  4. 若后面元素比前面大,则递增,那么上坡计数+1,
  5. 若后面元素比前面小,则递减,下坡计数+1
  6. 下坡和上坡的计数都是轮流交替的。

代码实现

class Solution {public int wiggleMaxLength(int[] nums) {// 获取长度int length = nums.length;if(length < 2){return length;}int i;int count1 = 0, count2 = 0;for (i = 1; i < nums.length; i++) {if (nums[i] > nums[i - 1]) {count1 = count2 + 1;}if (nums[i] < nums[i - 1]) {count2 = count1 + 1;}}return Math.max(count1+1, count2+1);}
}

20191025:(leetcode)摆动序列相关推荐

  1. LeetCode摆动序列

    如果连续数字之间的差严格地在正数和负数之间交替,则数字序列称为 摆动序列 .第一个差(如果存在的话)可能是正数或负数.仅有一个元素或者含两个不等元素的序列也视作摆动序列. 例如, [1, 7, 4, ...

  2. 【LeetCode】376. 摆动序列(图解)

    376. 摆动序列 一.问题 如果连续数字之间的差严格地在正数和负数之间交替,则数字序列称为摆动序列.第一个差(如果存在的话)可能是正数或负数.少于两个元素的序列也是摆动序列. 例如, [1,7,4, ...

  3. LeetCode 376. 摆动序列(贪心 动态规划)

    文章目录 1. 题目 2. 解题 2.1 贪心 2.2 动态规划 1. 题目 如果连续数字之间的差严格地在正数和负数之间交替,则数字序列称为摆动序列.第一个差(如果存在的话)可能是正数或负数.少于两个 ...

  4. leetcode - 376. 摆动序列

    376. 摆动序列 -------------------------------------------- 如果连续数字之间的差严格地在正数和负数之间交替,则数字序列称为摆动序列.第一个差(如果存在 ...

  5. 力扣(LeetCode)376. 摆动序列(2023.01.09)

    如果连续数字之间的差严格地在正数和负数之间交替,则数字序列称为 摆动序列 .第一个差(如果存在的话)可能是正数或负数.仅有一个元素或者含两个不等元素的序列也视作摆动序列. 例如, [1, 7, 4, ...

  6. LeetCode 376. 摆动序列 中等难度

    376. 摆动序列 题目: 如果连续数字之间的差严格地在正数和负数之间交替,则数字序列称为摆动序列.第一个差(如果存在的话)可能是正数或负数.少于两个元素的序列也是摆动序列. 例如: [1,7,4,9 ...

  7. leetcode 376. 摆动序列 思考分析

    目录 题目 思路分析 代码 总结 题目 如果连续数字之间的差严格地在正数和负数之间交替,则数字序列称为摆动序列.第一个差(如果存在的话)可能是正数或负数.少于两个元素的序列也是摆动序列. 例如, [1 ...

  8. leetcode 376. 摆动序列(dp)

    如果连续数字之间的差严格地在正数和负数之间交替,则数字序列称为摆动序列.第一个差(如果存在的话)可能是正数或负数.少于两个元素的序列也是摆动序列. 例如, [1,7,4,9,2,5] 是一个摆动序列, ...

  9. 序列复杂度怎么看_每日算法系列【LeetCode 376】摆动序列

    题目描述 如果连续数字之间的差严格地在正数和负数之间交替,则数字序列称为摆动序列.第一个差(如果存在的话)可能是正数或负数.少于两个元素的序列也是摆动序列. 例如, [1,7,4,9,2,5] 是一个 ...

最新文章

  1. Lotus Notes应用经验谈
  2. MySQL中的ORDER BY field
  3. MySQL 5.6版本GTID复制异常处理一例
  4. Spring Boot的快速入门
  5. 北理工计算机学院新闻,北理工计算机学子勇夺CVPR 2021 AI安全国际顶级赛事季军...
  6. 操作系统原理:进程 PV 操作如何计算?全网最全三种前驱图计算类型总结
  7. phpcmsV9推荐位posid文章,图片不显示问题 - 思路篇
  8. oracle manager 配置,Oracle Net Manager 基本配置
  9. 安卓权威编程指南 挑战练习 20.9 创建多版本主题
  10. java抓取屏幕像素,以像素为单位获取屏幕尺寸
  11. MySQL在并发场景下的问题及解决思路
  12. 【原神】元素反应机制
  13. BDA,CDA,CPDA哪个证相对可靠?哪个含金量高?具体考试内容?
  14. flutter BoxDecoration设置背景 image 报错:type ‘Image‘ is not a subtype of type ‘ImageProvider<Object> 解决方法
  15. Java icetea_java – OpenJDK 8的IcedTea插件
  16. cadence软件问题解决集
  17. OPENWRT 修改串口(ttyS*)笔记
  18. 北京住房公积金联名卡查询使用
  19. 基于Ace的Markdown编辑器
  20. DB-Engines发布了2017年9月数据库排名。

热门文章

  1. AI工程师的薪资高得逆天: 2020年,是入坑的最好时机!
  2. GitHub 官方终于出 App 了!iPhone 用户可抢先体验
  3. 华为宣布方舟编译器将开源;​苹果秋季发布会定档9月10日;TypeScript 3.6 发布 | 极客头条...
  4. 程序员的技术负债怎么还?
  5. 倘若马克·扎克伯格 15 年前没有辍学......
  6. Google 程序员消灭 Bug 的 5 大法宝!
  7. 芯片漏洞攻击出现新变种,涉及英特尔SGX技术支持的应用
  8. 程序员如何避免身体被掏空?
  9. 一文快速掌握前端开发必备技能
  10. php删除更新修改时间,php怎样获取文件的最后修改时间