- 思路
贪心
局部最优:取得峰值
全局最优:取得多个峰值
因为可以删除节点,所以秩序统计峰值个数即可
class Solution
{
public:
int wiggleMaxLength(vector& nums)
{
if (nums.size() <= 1)
{
return nums.size();
}
int res = 1;// 默认最右边已经有一个节点
int curDiff = 0;
int preDiff = 0;//注意,前向差值为0,即认为有一个虚拟头节点,该节点的值与头节点值相等
for (int i = 1; i < nums.size(); ++i)
{
curDiff = nums[i] - nums[i - 1];
if ((curDiff > 0 && preDiff <= 0) || (curDiff < 0 && preDiff >= 0))
{
++res;
preDiff = curDiff;
}
}
return res;
}
};



