LeetCode376. Wiggle Subsequence
来源:互联网 发布:原油投资网络骗局 编辑:程序博客网 时间:2024/06/04 01:16
public class Solution { public int wiggleMaxLength(int[] nums) { if(nums==null||nums.length==0) return 0; if(nums.length<2) return nums.length; int[] dp = new int[nums.length]; for(int i=0;i<nums.length;i++){ dp[i] = 1; } dp[0] = 1; if(nums[1]==nums[0]) dp[1] = 1; else dp[1] = 2; for(int i=2;i<nums.length;i++){ if((nums[i-1]>nums[i-2]&&nums[i]<nums[i-1])||(nums[i-1]<nums[i-2]&&nums[i]>nums[i-1])){ dp[i] = Math.max(dp[i-1]+1,dp[i]); }else if((nums[i-1]==nums[i-2])&&(nums[i]==nums[i-1])){ dp[i]=1; }else{ dp[i]=2; } } int max = Integer.MIN_VALUE; for(int i=0;i<dp.length;i++){ max = Math.max(max,dp[i]); } return max; }}
以上是自己写的代码,求的是连续的subarray但是题目要求我们去求subsequence可以用贪心算法
public class Solution { public int wiggleMaxLength(int[] nums) { int flag = 0; int count = 1; for(int i=1;i<nums.length;i++){ if(nums[i]>nums[i-1]){ if(flag==0){ count++; flag = 1; }else{ if(flag==-1){ count++; flag = 1; } } } else if(nums[i]<nums[i-1]){ if(flag==0){ count++; flag = -1; } else{ if(flag==1){ count++; flag = -1; } } } } return count; }}
0 0
- LeetCode376. Wiggle Subsequence
- LeetCode376:Wiggle Subsequence
- LeetCode376. Wiggle Subsequence题解
- 贪心1 Wiggle Subsequence(LeetCode376)
- Wiggle Subsequence
- Wiggle Subsequence
- Wiggle Subsequence
- Wiggle Subsequence
- Wiggle Subsequence
- Wiggle Subsequence
- Wiggle Subsequence
- Wiggle Subsequence
- Wiggle Subsequence
- leetcode 376. Wiggle Subsequence
- 376. Wiggle Subsequence
- leetcode 376. Wiggle Subsequence
- 376. Wiggle Subsequence
- [leetcode] 376. Wiggle Subsequence
- 解决Android SDK下载和更新失败"Connection to https://dl-ssl.google.com refused"的问题
- HDU1251-统计难题
- 矩形的面积
- 多列布局(column)
- HDU 2855(由递推式构造矩阵+矩阵快速幂)
- LeetCode376. Wiggle Subsequence
- Fraction(长春重现赛)
- ResultSet用法集锦
- C Primer Plus学习 十三 逻辑运算
- “String s = new String("xyz");创建了多少个String实例”?
- android开发经常碰到的crash(下)
- Hodgepodge
- QT,QT SDK, QT Creator 区别
- c++输出格出 and 如何用cout实现各种输出