原題鏈接:376.擺動序列
全代碼:
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; // 注意這里,只在擺動變化的時候更新prediff}}return result;}
};