class Solution {
public:
int wiggleMaxLength(vector<int>& nums) {
//把这个问题看作是一个折线图,我们可以很清楚的看出他们的幅度
//摆动序列这一题要求,一正一负排下去,如果画出来的折线图是单调递增或递减,那么这中间肯定是有不符合要求的
if(nums.size()<=1)return nums.size();
int curDiff=0;//当前一堆差值
int preDiff=0;//之前一对差值
int result=1;//因为如果只有一个值,那么这个值也是峰值
for(int i=0;i<nums.size()-1;i++){
curDiff=nums[i+1]-nums[i];
//出现峰值
if((preDiff<=0&&curDiff>0)||(preDiff>=0&&curDiff<0)){
result++;
//更新prediff
preDiff=curDiff;
}
}
return result;
}
};