376. Wiggle Subsequence
来源:互联网 发布:2016国产网络剧排行榜 编辑:程序博客网 时间:2024/06/05 05:08
本题是找出一个序列中的最长的摆动子序列
For example, [1,7,4,9,2,5]
is a wiggle sequence because the differences (6,-3,5,-7,3) are alternately positive and negative. In contrast, [1,4,7,2,5]
and [1,7,4,5,5]
are not wiggle sequences, the first because its first two differences are positive and the second because its last difference is zero.
Input: [1,7,4,9,2,5]Output: 6The entire sequence is a wiggle sequence.Input: [1,17,5,10,13,15,10,5,16,8]Output: 7There are several subsequences that achieve this length. One is [1,17,10,13,10,16,8].Input: [1,2,3,4,5,6,7,8,9]Output: 2我们的思路是首先找出不重复的序列开头,然后维护一个正负值的b,每当b的值和前一个相邻数值对比的值不同,我们就改变b的正负值并将result结果
加1,最后返回result.代码如下:
class Solution { public int wiggleMaxLength(int[] nums) { if(nums.length==1||nums.length==0){ return nums.length; } int k =0 ; while(k<nums.length-1&&nums[k]==nums[k+1]){ k++; } if(k==nums.length-1) return 1; boolean b = nums[k]>nums[k+1]; int result = 2; for (int i = k+1; i < nums.length-1; i++) {if(nums[i]>nums[i+1]&&!b||nums[i]<nums[i+1]&&b){result++;b = !b;}} return result; }}
阅读全文
0 0
- leetcode 376. Wiggle Subsequence
- 376. Wiggle Subsequence
- leetcode 376. Wiggle Subsequence
- 376. Wiggle Subsequence
- [leetcode] 376. Wiggle Subsequence
- [LEETCODE] 376. Wiggle Subsequence
- [leetcode] 376. Wiggle Subsequence
- [leetcode] 376. Wiggle Subsequence
- LeetCode 376. Wiggle Subsequence
- leetcode 376. Wiggle Subsequence
- 376.[LeetCode]Wiggle Subsequence
- 376. Wiggle Subsequence
- 376. Wiggle Subsequence
- [Leetcode]376. Wiggle Subsequence
- 376. Wiggle Subsequence
- leetcode-376. Wiggle Subsequence
- Leetcode 376. Wiggle Subsequence
- 376. Wiggle Subsequence
- java中的==和equals()
- 第十二周-项目二-最小生成树的克鲁斯卡尔算法
- 牛客 寻找Coder
- 数据结构上机实践第14周项目1(4)
- 第十周项目1(2)-由后序序列和中序序列构造二叉树
- 376. Wiggle Subsequence
- 第十三周项目一(2)——验证分块查找算法
- vue build前图片样式注意事项
- leetcode-Sum Root to Leaf Numbers
- Java操作MongoDB采用MongoRepository仓库进行条件查询
- 第十四周 项目1-验证算法(2)
- iOS开发中的一些常用小技巧
- 查找
- C++:多维数组的动态分配(new)和释放(delete)