问题描述

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

例如, [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
进阶:
你能否用 O(n) 时间复杂度完成此题?

代码

class Solution {public int wiggleMaxLength(int[] nums) {if(nums.length<2) {return nums.length;}int num;int start=-1;for(int i=0;i<nums.length-1;i++) {if(nums[i]!=nums[i+1]){start=i;break;}}if(start==-1)return 1;num=2;boolean flag=nums[start+1]<nums[start];//true表示下降for(int i=start;i<nums.length-1;i++) {if(flag==true&&nums[i+1]>nums[i]) {flag=!flag;num++;}if(flag==false&&nums[i]>nums[i+1]) {flag=!flag;num++;}}return num;}
}

Leetcode376.摆动序列相关推荐

  1. leetcode-376 摆动序列

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

  2. 贪心---leetcode-376摆动序列

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

  3. 贪心法——LeetCode376 摆动序列

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

  4. Leetcode376摇摆序列--贪心+自动机

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

  5. 算法----摆动序列

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

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

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

  7. 蓝桥杯_算法训练_ALGO12_摆动序列

    问题描述 如果一个序列满足下面的性质,我们就将它称为摆动序列: 1. 序列中的所有数都是不大于k的正整数: 2. 序列中至少有两个数. 3. 序列中的数两两不相等: 4. 如果第i – 1个数比第i ...

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

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

  9. 贪心/动态规划 - 摆动序列

    摆动序列 题目链接 贪心 尽可能多的选择波峰波谷. class Solution {public:int wiggleMaxLength(vector<int>& nums) {i ...

  10. [蓝桥杯][算法训练VIP]摆动序列(深搜+回溯||动态规划)

    题目描述 如果一个序列满足下面的性质,我们就将它称为摆动序列: 序列中的所有数都是不大于k的正整数: 序列中至少有两个数. 序列中的数两两不相等: 如果第i – 1个数比第i – 2个数大,则第i个数 ...

最新文章

  1. 在线作图|如何绘制一张三元相图
  2. Python将彩色图转换为灰度图
  3. 信息化基础建设系列文章汇总 .NET 平台业务项目实践
  4. S3C2440的LCD编程
  5. Android 创建其它应该程序的上下文对象
  6. html用jq设置动态效果,jQuery实现基本动画效果的方法详解
  7. linux的安装组和管理组的区别吗,Linux用户和组管理
  8. JPA 多条件、多表查询
  9. 关于Navicat 连接mysql报11001错误
  10. jquery中的html代码、文本以及值
  11. 手机当启动U盘DriveDroid 版本 0.10.3 功能无限制版使用教程
  12. 天思软件常见问题汇总
  13. Activeperl安装教程
  14. 微信小程序开发过程记录
  15. c语言输入字符输出数字,C语言——输入一个字符串,将连续数字字符转换为数字...
  16. Ubuntu登录界面键盘鼠标失灵
  17. 如何用计算机打出字,两个字中间的点怎么打出来?
  18. 00007__文本编辑器__UltraEdit
  19. python opencv报drawContours '(-215) npoints 0'
  20. Chu-Liu Edmonds算法在带权重的有向图中寻找最大生成树

热门文章

  1. 12-Python3 元组
  2. c++ auto 属性
  3. 异常处理-try catch
  4. 房产纠纷官司费用是多少
  5. swith case
  6. 卸载oracle 10g
  7. 微信5.0安卓内测版下载
  8. 分组数据筛选(group by后取出每组的第n条数据)
  9. C#中水晶按钮的程序生成【转载】
  10. (Oracle、SqlServer、Access)数据库开发代码生成工具SharpCode2.0