2023.7.28
本题思路是定义一个 direct变量记录上一次摆动是上坡还是下坡 。 然后在一个for循环中循环判断当前摆动和上一次摆动是否一致,如果不一致则视为一次摆动。 如果前后元素值相等得话,直接continue进入下一次循环。文章来源:https://www.toymoban.com/news/detail-615848.html
下面看代码:文章来源地址https://www.toymoban.com/news/detail-615848.html
class Solution {
public:
int wiggleMaxLength(vector<int>& nums) {
if(nums.size() == 1) return 1;
int ans = 1;
int direct = 0; // 1为上坡,-1为下坡
for(int i=1; i<nums.size(); i++)
{
if(nums[i] == nums[i-1]) continue;
if(nums[i] > nums[i-1])
{
if(direct == 1) continue;
direct = 1;
}
else
{
if(direct == -1) continue;
direct = -1;
}
ans++;
}
return ans;
}
};
到了这里,关于leetcode 376. 摆动序列的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!