java摆动序列示例-创新互联

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

网站设计制作过程拒绝使用模板建站;使用PHP+MYSQL原生开发可交付网站源代码;符合网站优化排名的后台管理系统;成都网站设计、网站建设收费合理;免费进行网站备案等企业网站建设一条龙服务.我们是一家持续稳定运营了10年的创新互联网站建设公司。

例如, [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;
   }
};

另外有需要云服务器可以了解下创新互联cdcxhl.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


当前题目:java摆动序列示例-创新互联
URL标题:http://hbruida.cn/article/djsgdh.html