LeetCode 376. 摆动序列 中等难度
376. 摆动序列
题目:
如果连续数字之间的差严格地在正数和负数之间交替,则数字序列称为摆动序列。第一个差(如果存在的话)可能是正数或负数。少于两个元素的序列也是摆动序列。
例如: [1,7,4,9,2,5] 是一个摆动序列,因为差值 (6,-3,5,-7,3) 是正负交替出现的。相反, [1,4,7,2,5] 和 [1,7,4,5,5] 不是摆动序列,第一个序列是因为它的前两个差值都是正数,第二个序列是因为它的最后一个差值为零。
给定一个整数序列,返回作为摆动序列的最长子序列的长度。 通过从原始序列中删除一些(也可以不删除)元素来获得子序列,剩下的元素保持其原始顺序。
示例 1:输入: [1,7,4,9,2,5]
输出: 6
解释: 整个序列均为摆动序列。
示例 2:输入: [1,17,5,10,13,15,10,5,16,8]
输出: 7
解释: 这个序列包含几个长度为 7 摆动序列,其中一个可为[1,17,10,13,10,16,8]。
示例 3:输入: [1,2,3,4,5,6,7,8,9]
输出: 2
解题思路:
class Solution {public:int wiggleMaxLength(vector<int>& nums) {if(nums.size()<2) return nums.size();int state=0; //0是起点 1是up 2是downint res=1; //这里需要注意,因为长度是从1开始的for(int i=1;i<nums.size();i++){switch(state){case 0: //起点if(nums[i-1]<nums[i]) {state=1;res++;}else if(nums[i-1]>nums[i]) {state=2;res++;}break;case 1: //前一个点是up状态(极大值)if(nums[i-1]>nums[i]){state=2;res++;}break;case 2: //前一个点是down状态(极小值)if(nums[i-1]<nums[i]){state=1;res++;}}}return res; }
};
个人总结:
1.首先是利用了贪心算法
2.一开始最长长度是1,不能设为0
3.要转化为状态图后写出程序’
LeetCode 376. 摆动序列 中等难度相关推荐
- leetcode - 376. 摆动序列
376. 摆动序列 -------------------------------------------- 如果连续数字之间的差严格地在正数和负数之间交替,则数字序列称为摆动序列.第一个差(如果存在 ...
- LeetCode 376. 摆动序列(贪心 动态规划)
文章目录 1. 题目 2. 解题 2.1 贪心 2.2 动态规划 1. 题目 如果连续数字之间的差严格地在正数和负数之间交替,则数字序列称为摆动序列.第一个差(如果存在的话)可能是正数或负数.少于两个 ...
- leetcode 376. 摆动序列 思考分析
目录 题目 思路分析 代码 总结 题目 如果连续数字之间的差严格地在正数和负数之间交替,则数字序列称为摆动序列.第一个差(如果存在的话)可能是正数或负数.少于两个元素的序列也是摆动序列. 例如, [1 ...
- leetcode 376. 摆动序列(dp)
如果连续数字之间的差严格地在正数和负数之间交替,则数字序列称为摆动序列.第一个差(如果存在的话)可能是正数或负数.少于两个元素的序列也是摆动序列. 例如, [1,7,4,9,2,5] 是一个摆动序列, ...
- [leetcode]376. 摆动序列
原文:https://leetcode-cn.com/problems/wiggle-subsequence/solution/bai-dong-xu-lie-by-leetcode/ 给定一个整数序 ...
- Leetcode 376. 摆动序列 解题思路及C++实现
解题思路: 使用贪心算法的思想. 在例子 [1,17,5,10,13,15,10,5,16,8]中,[1, 17].[17, 5]这前面的两个序列就直接都选择了,没有问题,对于后面[5, 10, 13 ...
- 【LeetCode每日一题】——376.摆动序列
文章目录 一[题目类别] 二[题目难度] 三[题目编号] 四[题目描述] 五[题目示例] 六[解题思路] 七[题目提示] 八[题目进阶] 九[时间频度] 十[代码实现] 十一[提交结果] 一[题目类别 ...
- 【LeetCode】376. 摆动序列(图解)
376. 摆动序列 一.问题 如果连续数字之间的差严格地在正数和负数之间交替,则数字序列称为摆动序列.第一个差(如果存在的话)可能是正数或负数.少于两个元素的序列也是摆动序列. 例如, [1,7,4, ...
- 贪心1|455.分发饼干|376. 摆动序列|53. 最大子序和
贪心1|455.分发饼干|376. 摆动序列|53. 最大子序和 一.455.分发饼干 题目连接:455. 分发饼干 - 力扣(LeetCode) 思路1:用贪心思想,将饼干数组和胃口数组先排序,然后 ...
最新文章
- 【统计学习方法】线性可分支持向量机对鸢尾花(iris)数据集进行二分类
- Springboot+Mybatis+Durid
- python经典好书-推荐几本高质量的Python书籍--附github下载路径
- 计算机网络总结:第二章 应用层
- mongo执行逻辑表达式_MongoDB 常用查询操作
- unable to execute dex: multiple dex files Cocos2dxAccelerometer
- javaserver_什么是JavaServer Faces(JSF)–(第2部分)
- Vue计算属性、方法、侦听器
- 大型.NET项目的目录、编译和版本管理实践 五
- 随想录(rtos中的signal)
- ROS学习笔记一(ROS的catkin工作空间)
- 程序员过了 30 岁就没人要了?!
- js sdk 一键分享 微信_微信朋友圈分享自己拍的视频,一键开启这个设置,自带文字和音乐...
- SQL server 使用自定义函数以及游标
- HP server ILO
- 打印出现:You've implemented -[UIApplicationDelegate application:didReceiveRemoteNotification:...
- make的作用linux,Linux下./configure,make,make install的作用
- Python使用jieba库实现分词统计词频
- 远程桌面系统管理员以限制你登入计算机,windows远程连接时:系统管理员已经限制你可以使用的登录类型(网络或交互式)解决办法...
- 使用Arduino UNO以及好盈电调控制无刷电机