20191025:(leetcode)摆动序列
摆动序列
- 题目
- 大致思路
- 代码实现
题目
- 摆动序列:如果连续数字之间的差严格地在正数和负数之间交替,则数字序列称为摆动序列。第一个差(如果存在的话)可能是正数或负数。少于两个元素的序列也是摆动序列。
- 给定一个整数序列,返回作为摆动序列的最长子序列的长度。 通过从原始序列中删除一些(也可以不删除)元素来获得子序列,剩下的元素保持其原始顺序。
输入: [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
大致思路
- 如果这序列是一个单调序列,则返回结果2,需要对比,对比至少需要2个元素。
- 如果是空序列或者只有一个数的序列,则返回0和1
- 因为可以删除任意元素,因此我们只需要一个遍历就可以完成计算,复杂度为O(N)
- 若后面元素比前面大,则递增,那么上坡计数+1,
- 若后面元素比前面小,则递减,下坡计数+1
- 下坡和上坡的计数都是轮流交替的。
代码实现
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)摆动序列相关推荐
- LeetCode摆动序列
如果连续数字之间的差严格地在正数和负数之间交替,则数字序列称为 摆动序列 .第一个差(如果存在的话)可能是正数或负数.仅有一个元素或者含两个不等元素的序列也视作摆动序列. 例如, [1, 7, 4, ...
- 【LeetCode】376. 摆动序列(图解)
376. 摆动序列 一.问题 如果连续数字之间的差严格地在正数和负数之间交替,则数字序列称为摆动序列.第一个差(如果存在的话)可能是正数或负数.少于两个元素的序列也是摆动序列. 例如, [1,7,4, ...
- LeetCode 376. 摆动序列(贪心 动态规划)
文章目录 1. 题目 2. 解题 2.1 贪心 2.2 动态规划 1. 题目 如果连续数字之间的差严格地在正数和负数之间交替,则数字序列称为摆动序列.第一个差(如果存在的话)可能是正数或负数.少于两个 ...
- leetcode - 376. 摆动序列
376. 摆动序列 -------------------------------------------- 如果连续数字之间的差严格地在正数和负数之间交替,则数字序列称为摆动序列.第一个差(如果存在 ...
- 力扣(LeetCode)376. 摆动序列(2023.01.09)
如果连续数字之间的差严格地在正数和负数之间交替,则数字序列称为 摆动序列 .第一个差(如果存在的话)可能是正数或负数.仅有一个元素或者含两个不等元素的序列也视作摆动序列. 例如, [1, 7, 4, ...
- LeetCode 376. 摆动序列 中等难度
376. 摆动序列 题目: 如果连续数字之间的差严格地在正数和负数之间交替,则数字序列称为摆动序列.第一个差(如果存在的话)可能是正数或负数.少于两个元素的序列也是摆动序列. 例如: [1,7,4,9 ...
- leetcode 376. 摆动序列 思考分析
目录 题目 思路分析 代码 总结 题目 如果连续数字之间的差严格地在正数和负数之间交替,则数字序列称为摆动序列.第一个差(如果存在的话)可能是正数或负数.少于两个元素的序列也是摆动序列. 例如, [1 ...
- leetcode 376. 摆动序列(dp)
如果连续数字之间的差严格地在正数和负数之间交替,则数字序列称为摆动序列.第一个差(如果存在的话)可能是正数或负数.少于两个元素的序列也是摆动序列. 例如, [1,7,4,9,2,5] 是一个摆动序列, ...
- 序列复杂度怎么看_每日算法系列【LeetCode 376】摆动序列
题目描述 如果连续数字之间的差严格地在正数和负数之间交替,则数字序列称为摆动序列.第一个差(如果存在的话)可能是正数或负数.少于两个元素的序列也是摆动序列. 例如, [1,7,4,9,2,5] 是一个 ...
最新文章
- Lotus Notes应用经验谈
- MySQL中的ORDER BY field
- MySQL 5.6版本GTID复制异常处理一例
- Spring Boot的快速入门
- 北理工计算机学院新闻,北理工计算机学子勇夺CVPR 2021 AI安全国际顶级赛事季军...
- 操作系统原理:进程 PV 操作如何计算?全网最全三种前驱图计算类型总结
- phpcmsV9推荐位posid文章,图片不显示问题 - 思路篇
- oracle manager 配置,Oracle Net Manager 基本配置
- 安卓权威编程指南 挑战练习 20.9 创建多版本主题
- java抓取屏幕像素,以像素为单位获取屏幕尺寸
- MySQL在并发场景下的问题及解决思路
- 【原神】元素反应机制
- BDA,CDA,CPDA哪个证相对可靠?哪个含金量高?具体考试内容?
- flutter BoxDecoration设置背景 image 报错:type ‘Image‘ is not a subtype of type ‘ImageProvider<Object> 解决方法
- Java icetea_java – OpenJDK 8的IcedTea插件
- cadence软件问题解决集
- OPENWRT 修改串口(ttyS*)笔记
- 北京住房公积金联名卡查询使用
- 基于Ace的Markdown编辑器
- DB-Engines发布了2017年9月数据库排名。
热门文章
- AI工程师的薪资高得逆天: 2020年,是入坑的最好时机!
- GitHub 官方终于出 App 了!iPhone 用户可抢先体验
- 华为宣布方舟编译器将开源;​苹果秋季发布会定档9月10日;TypeScript 3.6 发布 | 极客头条...
- 程序员的技术负债怎么还?
- 倘若马克·扎克伯格 15 年前没有辍学......
- Google 程序员消灭 Bug 的 5 大法宝!
- 芯片漏洞攻击出现新变种,涉及英特尔SGX技术支持的应用
- 程序员如何避免身体被掏空?
- 一文快速掌握前端开发必备技能
- php删除更新修改时间,php怎样获取文件的最后修改时间