/**
* 摆动序列:贪心法
*
* 找出可以组成的最长的贪心序列(去掉某些元素)
*/
class Solution {
public int wiggleMaxLength(int[] nums) {
if (nums.length <= 1) return nums.length;
if (nums.length == 2) return nums[0]-nums[1]==0?1:2;
int len = 1;
int temp = nums[0];
int up = 0;
int down = 0;
for (int i = 1; i < nums.length; i++) {
if (nums[i] > temp) {
if (up == 0) {
down = 0;
len++;
}
up++;
temp = nums[i];
} else if(nums[i] < temp){
if (down == 0) {
up = 0;
len++;
}
down++;
temp = nums[i];
}
}
return len;
}
}
/**
* 摆动序列:贪心法(大神解法)
*/
class Solution1 {
public int wiggleMaxLength(int[] nums) {
if (nums.length < 2)
return nums.length;
int prevdiff = nums[1] - nums[0];
int count = prevdiff != 0 ? 2 : 1;
for (int i = 2; i < nums.length; i++) {
int diff = nums[i] - nums[i - 1];
if ((diff > 0 && prevdiff <= 0) || (diff < 0 && prevdiff >= 0)) {
count++;
prevdiff = diff;
}
}
return count;
}
}
Wobble sequence: greedy
Guess you like
Origin www.cnblogs.com/loveer/p/11767359.html
Recommended
Ranking