摇摆数组是当前值和前一个值的差按照正负交替的顺序的数组,求一个数组中摇摆数组的最长的子数组的长度(删除一定的元素,注意一点删除的元素是随意的): Input: [1,7,4,9,2,5] Output: 6 The entire sequence is a wiggle sequence. Input: [1,17,5,10,13,15,10,5,16,8] Output: 7 There are several subsequences that achieve this length. One is [1,17,10,13,10,16,8]. Input: [1,2,3,4,5,6,7,8,9] Output: 2 代码如下: //贪心 class Solution { public: int wiggleMaxLength(vector<int>& nums) { int size=nums.size(), f=1, d=1; for(int i=1; i<size; ++i){ //不是大于或者小于之一的话那么就不管 if(nums[i]>nums[i-1]) f=d+1; else if(nums[i]<nums[i-1]) d=f+1; } return min(size, max(f, d)); } };