Loading

Leetcode376.摆动序列

题目链接:376. 摆动序列

思路:输入数组可以类似于折线图,那么每次波动只保留波峰和波谷就好。

代码:

class Solution {
    public int wiggleMaxLength(int[] nums) {
        int len=0;
        for(int i=0,next = i; i<nums.length-1; ){
            while(next+1<nums.length && nums[next] <= nums[next+1]) next++;//寻找波峰
            if(nums[i] < nums[next]) {
                len++;
            }
            i = next;
            while(next+1<nums.length && nums[next] >= nums[next+1]) next++;//寻找波谷
            if(nums[i] > nums[next]) {
                len++;
            }
            i = next;
        }
        return nums.length < 2 ? nums.length : len + 1;
    }
}
执行用时:0 ms, 在所有 Java 提交中击败了100.00%的用户
内存消耗:36.2 MB, 在所有 Java 提交中击败了37.53%的用户
posted @ 2020-12-12 09:58  yoyuLiu  阅读(115)  评论(0编辑  收藏  举报