题目

376. 摆动序列_算法

分析

376. 摆动序列_算法_02


贪心算法

局部最优:删除单调坡度上的节点,那么这个坡度就可以有两个局部峰值。

全局最优:整个序列有最多的局部峰值,从而达到最长摆动序列。

代码

class Solution {
public int wiggleMaxLength(int[] nums) {
if(nums.length <= 1) return nums.length;
int pre = 0;
int cur = 0;
int result = 1;
for(int i = 0;i < nums.length-1;i++){
cur = nums[i+1] - nums[i];
if((cur > 0 && pre <= 0) || (cur < 0 && pre >= 0)){
result++;
pre = cur;
}
}
return result;
}
}

376. 摆动序列_i++_03