Leetcode376.摆动序列
问题描述
如果连续数字之间的差严格地在正数和负数之间交替,则数字序列称为摆动序列。第一个差(如果存在的话)可能是正数或负数。少于两个元素的序列也是摆动序列。
例如, [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.摆动序列相关推荐
- leetcode-376 摆动序列
如果连续数字之间的差严格地在正数和负数之间交替,则数字序列称为摆动序列.第一个差(如果存在的话)可能是正数或负数.少于两个元素的序列也是摆动序列. 例如, [1,7,4,9,2,5] 是一个摆动序列, ...
- 贪心---leetcode-376摆动序列
题目 如果连续数字之间的差严格地在正数和负数之间交替,则数字序列称为摆动序列.第一个差(如果存在的话)可能是正数或负数.少于两个元素的序列也是摆动序列. 例如, [1,7,4,9,2,5] 是一个摆动 ...
- 贪心法——LeetCode376 摆动序列
贪心法 题目:摆动序列 如果连续数字之间的差严格地在正数和负数之间交替,则数字序列称为摆动序列.第一个差(如果存在的话)可能是正数或负数.少于两个元素的序列也是摆动序列. 例如, [1,7,4,9,2 ...
- Leetcode376摇摆序列--贪心+自动机
题目 如果连续数字之间的差严格地在正数和负数之间交替,则数字序列称为摆动序列.第一个差(如果存在的话)可能是正数或负数.少于两个元素的序列也是摆动序列. 例如, [1,7,4,9,2,5] 是一个摆动 ...
- 算法----摆动序列
题目 如果连续数字之间的差严格地在正数和负数之间交替,则数字序列称为 摆动序列 .第一个差(如果存在的话)可能是正数或负数.仅有一个元素或者含两个不等元素的序列也视作摆动序列. 例如, [1, 7, ...
- LeetCode 376. 摆动序列 中等难度
376. 摆动序列 题目: 如果连续数字之间的差严格地在正数和负数之间交替,则数字序列称为摆动序列.第一个差(如果存在的话)可能是正数或负数.少于两个元素的序列也是摆动序列. 例如: [1,7,4,9 ...
- 蓝桥杯_算法训练_ALGO12_摆动序列
问题描述 如果一个序列满足下面的性质,我们就将它称为摆动序列: 1. 序列中的所有数都是不大于k的正整数: 2. 序列中至少有两个数. 3. 序列中的数两两不相等: 4. 如果第i – 1个数比第i ...
- 【LeetCode】376. 摆动序列(图解)
376. 摆动序列 一.问题 如果连续数字之间的差严格地在正数和负数之间交替,则数字序列称为摆动序列.第一个差(如果存在的话)可能是正数或负数.少于两个元素的序列也是摆动序列. 例如, [1,7,4, ...
- 贪心/动态规划 - 摆动序列
摆动序列 题目链接 贪心 尽可能多的选择波峰波谷. class Solution {public:int wiggleMaxLength(vector<int>& nums) {i ...
- [蓝桥杯][算法训练VIP]摆动序列(深搜+回溯||动态规划)
题目描述 如果一个序列满足下面的性质,我们就将它称为摆动序列: 序列中的所有数都是不大于k的正整数: 序列中至少有两个数. 序列中的数两两不相等: 如果第i – 1个数比第i – 2个数大,则第i个数 ...
最新文章
- 在线作图|如何绘制一张三元相图
- Python将彩色图转换为灰度图
- 信息化基础建设系列文章汇总 .NET 平台业务项目实践
- S3C2440的LCD编程
- Android 创建其它应该程序的上下文对象
- html用jq设置动态效果,jQuery实现基本动画效果的方法详解
- linux的安装组和管理组的区别吗,Linux用户和组管理
- JPA 多条件、多表查询
- 关于Navicat 连接mysql报11001错误
- jquery中的html代码、文本以及值
- 手机当启动U盘DriveDroid 版本 0.10.3 功能无限制版使用教程
- 天思软件常见问题汇总
- Activeperl安装教程
- 微信小程序开发过程记录
- c语言输入字符输出数字,C语言——输入一个字符串,将连续数字字符转换为数字...
- Ubuntu登录界面键盘鼠标失灵
- 如何用计算机打出字,两个字中间的点怎么打出来?
- 00007__文本编辑器__UltraEdit
- python opencv报drawContours '(-215) npoints 0'
- Chu-Liu Edmonds算法在带权重的有向图中寻找最大生成树