摇摆数组

来源:互联网 发布:推荐系统 数据稀疏性 编辑:程序博客网 时间:2024/04/30 04:02
  • 摇摆数组是当前值和前一个值的差按照正负交替的顺序的数组,求一个数组中摇摆数组的最长的子数组的长度(删除一定的元素,注意一点删除的元素是随意的):
Input: [1,7,4,9,2,5]Output: 6The entire sequence is a wiggle sequence.Input: [1,17,5,10,13,15,10,5,16,8]Output: 7There 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));    }};
0 0
原创粉丝点击