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

例如, [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& nums) {

if(nums.size()<2)

return nums.size();

int begin=0;

int now=begin;

int up=2;

int down=3;

int max_=1;

for(int i=1;i

{

if(now==0)

{

if(nums[i]>nums[i-1])

{

now=2;

max_++;

}

else if(nums[i]

{

now=3;

max_++;

}

}

else if(now==2)

{

if(nums[i]

{

now=3;

max_++;

}

}

else if(now==3)

{ if(nums[i]>nums[i-1])

{

now=2;

max_++;

}

}

}return max_;

}

};

分析:是极值点就够了,开始时向上向下都是可以。如果向了下(此时做一个标记),那下次只能遇见向上(此数大于前数)才有效,(修改标记),其余的数是当中单调的,不需要管。

本文分享 CSDN - 希境。

如有侵权,请联系 support@oschina.cn 删除。

本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

摆动序列算法C语言,376 摆动序列 leetcode相关推荐

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

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

  2. 【学习笔记】山东大学生物信息学-05 高通量测序技术介绍 + 06 统计基础与序列算法(原理)

    课程地址:山东大学生物信息学 文章目录 五.高通量测序技术介绍(没有干货) 六.统计基础与序列算法(原理) 6.1 贝叶斯公式及其生物学应用 6.2 二元预测的灵敏度和特异度 6.3 基本序列算法 五 ...

  3. 力扣贪心算法专题(一)455.分发饼干 376. 摆动序列 53. 最大子序和 122.买卖股票的最佳时机II 1005.K次取反后最大化的数组和 思路及C++实现 贪心算法 动态规划

    文章目录 贪心算法 455.分发饼干 思路 步骤 代码 376. 摆动序列 贪心算法 思路 分析 代码 动态规划 思路 步骤 代码 53. 最大子序和 暴力解法 双层for循环 贪心算法 思路 分析 ...

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

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

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

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

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

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

  7. 376. 摆动序列 golang

    376. 摆动序列 求取所有的差值保存起来.然后再判断一正一负的规律是否成立 var flag int func wiggleMaxLength(nums []int) int {if len(num ...

  8. leetcode - 376. 摆动序列

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

  9. 序列划分c语言,一篇“get”C语言八大排序算法

    如果说各种编程语言是程序员的招式,那么数据结构和算法就相当于程序员的内功. 想写出精炼.优秀的代码,不通过不断的锤炼,是很难做到的. 二.八大排序算法 排序算法作为数据结构的重要部分,系统地学习一下是 ...

最新文章

  1. Fragment之间的通信
  2. 1086 就不告诉你
  3. Objective-C学习笔记2013[NSString]字符串[可变字符串中,加用app减用delete]
  4. 机器学习偏差方差_机器学习101 —偏差方差难题
  5. windows7黑屏修复_如何在Windows 10更新后修复黑屏
  6. 调试24L01经验总结
  7. 微信浏览器下载音频文件php,教你怎么下载公众号里面的音频文件
  8. android ps icon图标制作,PS设计App图标教程
  9. Android开发--更换字体
  10. 腾讯全民wifi linux,Linux下安装MT7601U无线网卡驱动
  11. php发送gmail,汇总PHPmailer群发Gmail的常见问题
  12. python对文本文件的读写
  13. Hadoop3.2.1 【 YARN 】源码分析 : NodeStatusUpdaterImpl概述
  14. SQL:查找或删除重复行
  15. 常见数据结构及特点介绍
  16. ECharts 安装和实现-echarts.min.js
  17. 【python】【惰性序列】【iterator】
  18. 电脑网络显示小地球却可以上网修复办法
  19. 直播与知识变现平台的现状分析和主流产品调研
  20. python编程题:三次方格式化

热门文章

  1. 人工蜂群算法求解TSP问题
  2. 用java计算一元二次方程
  3. 今天教你5种爆款标题,自媒体短视频标题写得好,月入过万少不了
  4. CSDN日报20170217——《辞职信:写给我的“藤野先生”》
  5. JavaWeb自学笔记02
  6. IT66021FN 寄存器配置
  7. SQLITE 获取本地时间
  8. 【转载】外设使用Tips之MSCAN接收ID滤波器设置
  9. 《被讨厌的勇气》书摘心得之一切烦恼都来自人际关系(2)
  10. 【ice】飞冰快速上手笔记