腾讯云服务器客服百度seo优化价格
2023.7.28
本题思路是定义一个 direct变量记录上一次摆动是上坡还是下坡 。 然后在一个for循环中循环判断当前摆动和上一次摆动是否一致,如果不一致则视为一次摆动。 如果前后元素值相等得话,直接continue进入下一次循环。
下面看代码:
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;}
};