网创优客建站品牌官网
为成都网站建设公司企业提供高品质网站建设
热线:028-86922220
成都专业网站建设公司

定制建站费用3500元

符合中小企业对网站设计、功能常规化式的企业展示型网站建设

成都品牌网站建设

品牌网站建设费用6000元

本套餐主要针对企业品牌型网站、中高端设计、前端互动体验...

成都商城网站建设

商城网站建设费用8000元

商城网站建设因基本功能的需求不同费用上面也有很大的差别...

成都微信网站建设

手机微信网站建站3000元

手机微信网站开发、微信官网、微信商城网站...

建站知识

当前位置:首页 > 建站知识

376.摆动序列

如果连续数字之间的差严格地在正数和负数之间交替,则数字序列称为摆动序列。第一个差(如果存在的话)可能是正数或负数。少于两个元素的序列也是摆动序列。

专注于为中小企业提供成都网站建设、成都网站制作服务,电脑端+手机端+微信端的三站合一,更高效的管理,为中小企业裕华免费做网站提供优质的服务。我们立足成都,凝聚了一批互联网行业人才,有力地推动了上1000+企业的稳健成长,帮助中小企业通过网站建设实现规模扩充和转变。

例如, [1,7,4,9,2,5] 是一个摆动序列,因为差值 (6,-3,5,-7,3) 是正负交替出现的。相反, [1,4,7,2,5] 和 [1,7,4,5,5] 不是摆动序列,第一个序列是因为它的前两个差值都是正数,第二个序列是因为它的最后一个差值为零。

给定一个整数序列,返回作为摆动序列的最长子序列的长度。 通过从原始序列中删除一些(也可以不删除)元素来获得子序列,剩下的元素保持其原始顺序。

代码实现:


class Solution {
public:
    int wiggleMaxLength(vector& nums) {
        if(nums.size() < 2)
        return nums.size();
        const int begin = 0;
        const int up = 1;
        const int down = 2;
        int state = begin;
        int max_length = 1;
        for(int i = 1; i < nums.size(); i++)
        {
            switch(state)
            {
            case begin:
            {
                if(nums[i -1] < nums[i])
                {state = up;
                max_length++;
                }
                if(nums[i-1] > nums[i])
                {
                    state = down;
                    max_length++;
                }
            }
            break;
            case up:
            if(nums[i-1] > nums[i])
            {
                state = down;
                max_length++;
            }
            break;
            case down:
            if(nums[i-1] < nums[i])
            {
                state = up;
                max_length++;
            }
            }
        }
        return max_length;
    }
};

当前文章:376.摆动序列
转载注明:http://bjjierui.cn/article/iiddhs.html

其他资讯