首页 > 其他 > 详细

p156 最长摆动子序列的长度(leetcode 376)

时间:2020-05-15 12:09:59      阅读:69      评论:0      收藏:0      [点我收藏+]

一:解题思路

使用贪心策略去解决这道题目。

Time:O(n),Space:O(1)

二:完整代码示例 (C++版和Java版)

C++:

class Solution {
public:
    int wiggleMaxLength(vector<int>& nums) 
    {
        if (nums.size() == 0) return 0;
        int i = 1;
        int len = 1;
        int n = nums.size();

        while (i < n && nums[i] == nums[i - 1]) i++;

        while (i < n)
        {
            if (nums[i] > nums[i - 1]) len++;
            while (i < n && nums[i]>=nums[i - 1]) i++;
            if (i < n) len++;
            while (i < n && nums[i] <= nums[i - 1]) i++;
        }

        return len;
    }
};

Java:

class Solution {
        public int wiggleMaxLength(int[] nums) 
        {
               if(nums==null || nums.length==0) return 0;
               int i=1;
               int len=1;
               int n=nums.length;
               while(i<n && nums[i]==nums[i-1]) i++;
               
               while(i<n)
               {
                   if(nums[i]>nums[i-1]) len++;
                   while(i<n && nums[i]>=nums[i-1]) i++;
                   if(i<n) len++;
                   while (i<n && nums[i]<=nums[i-1]) i++;
               }
               
               return len;
        }
    }

 

p156 最长摆动子序列的长度(leetcode 376)

原文:https://www.cnblogs.com/repinkply/p/12893907.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!