一:题目
二:上码
class Solution {
/**
思路:
1.局部最优:我们删除单调坡度上的结点(不包括单调坡度两端的结点) 不包括两端的结点
整体最优:整个序列有最多的局部峰值,从而达到最长摆动序列。
*/
public int wiggleMaxLength(int[] nums) {
if (nums.length == 1) return 1;
int curDiff = 0;
int preDiff = 0;
int ans = 1;//把初始结点算上
for (int i = 0; i < nums.length-1; i++) {
curDiff = nums[i+1] - nums[i];
if (curDiff > 0 && preDiff <= 0 ||( preDiff >= 0 && curDiff < 0)) {//这里的preDiff=0
ans++; //的时候只是在第一次用到
preDiff = curDiff;
}
}
return ans;
}
}