题目
思路
curdiff记录当前差值,prediff记录前一个差值。只需要在 这个坡度 摆动变化的时候,更新 prediff ,这样 prediff 在单调区间有平坡的时候 就不会发⽣变化。
代码
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=curdiff;
}
}
return result;
}
};
1105

被折叠的 条评论
为什么被折叠?



