解题思路
示例代码
class Solution {
public:
int wiggleMaxLength(vector<int>& nums) {
int len=nums.size();
vector<int> up(len+1),down(len+1);
up[1]=down[1]=1;
for(int i=2;i<=len;i++){
if(nums[i-1]>nums[i-2]){
up[i]=max(up[i-1],down[i-1]+1);
down[i]=down[i-1];
}else if(nums[i-1]<nums[i-2]){
up[i]=up[i-1];
down[i]=max(up[i-1]+1,down[i-1]);
}else{
up[i]=up[i-1];
down[i]=down[i-1];
}
}
return max(up[len],down[len]);
}
};
效果展示