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. 摆动序列 中等难度相关推荐

  1. leetcode - 376. 摆动序列

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

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

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

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

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

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

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

  5. [leetcode]376. 摆动序列

    原文:https://leetcode-cn.com/problems/wiggle-subsequence/solution/bai-dong-xu-lie-by-leetcode/ 给定一个整数序 ...

  6. Leetcode 376. 摆动序列 解题思路及C++实现

    解题思路: 使用贪心算法的思想. 在例子 [1,17,5,10,13,15,10,5,16,8]中,[1, 17].[17, 5]这前面的两个序列就直接都选择了,没有问题,对于后面[5, 10, 13 ...

  7. 【LeetCode每日一题】——376.摆动序列

    文章目录 一[题目类别] 二[题目难度] 三[题目编号] 四[题目描述] 五[题目示例] 六[解题思路] 七[题目提示] 八[题目进阶] 九[时间频度] 十[代码实现] 十一[提交结果] 一[题目类别 ...

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

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

  9. 贪心1|455.分发饼干|376. 摆动序列|53. 最大子序和

    贪心1|455.分发饼干|376. 摆动序列|53. 最大子序和 一.455.分发饼干 题目连接:455. 分发饼干 - 力扣(LeetCode) 思路1:用贪心思想,将饼干数组和胃口数组先排序,然后 ...

最新文章

  1. 【统计学习方法】线性可分支持向量机对鸢尾花(iris)数据集进行二分类
  2. Springboot+Mybatis+Durid
  3. python经典好书-推荐几本高质量的Python书籍--附github下载路径
  4. 计算机网络总结:第二章 应用层
  5. mongo执行逻辑表达式_MongoDB 常用查询操作
  6. unable to execute dex: multiple dex files Cocos2dxAccelerometer
  7. javaserver_什么是JavaServer Faces(JSF)–(第2部分)
  8. Vue计算属性、方法、侦听器
  9. 大型.NET项目的目录、编译和版本管理实践 五
  10. 随想录(rtos中的signal)
  11. ROS学习笔记一(ROS的catkin工作空间)
  12. 程序员过了 30 岁就没人要了?!
  13. js sdk 一键分享 微信_微信朋友圈分享自己拍的视频,一键开启这个设置,自带文字和音乐...
  14. SQL server 使用自定义函数以及游标
  15. HP server ILO
  16. 打印出现:You've implemented -[UIApplicationDelegate application:didReceiveRemoteNotification:...
  17. make的作用linux,Linux下./configure,make,make install的作用
  18. Python使用jieba库实现分词统计词频
  19. 远程桌面系统管理员以限制你登入计算机,windows远程连接时:系统管理员已经限制你可以使用的登录类型(网络或交互式)解决办法...
  20. 使用Arduino UNO以及好盈电调控制无刷电机

热门文章

  1. 吴恩达“机器学习”——学习笔记六
  2. 洛谷 [P1282] 多米诺骨牌
  3. K.O. -------- Eclipse中Maven的报错处理
  4. 找ipcore的地方
  5. SharePoint的WebService的应用
  6. 拉肚子,不能吃东西的痛苦
  7. “===” 也有不靠谱的时候
  8. 【SQL】使用调用层接口
  9. 申论万用句型——背下来
  10. 【转】HTML全解(1)