首页 > 其他 > 详细

经典DP-摆动序列最大子序列长度

时间:2021-07-18 23:20:47      阅读:27      评论:0      收藏:0      [点我收藏+]

链接:https://leetcode-cn.com/problems/wiggle-subsequence/
思路:DP有分两种状态来考虑:当前是上升的状态能构成的子序列长度,当前是下降的状态构成子序列长度
可以滚动数组优化为两个元素来表示

代码:

class Solution {
public:
    int wiggleMaxLength(vector<int>& n) {
        short d=1,p=1;
        for(int i=1;i<n.size();i++){
            if(n[i-1]>n[i])d=p+1;
            else if(n[i-1]<n[i]) p=d+1;
        }
        return max(d,p);
    }
};
//输入:nums = [1,7,4,9,2,5]
//输出:6
//解释:整个序列均为摆动序列,各元素之间的差值为 (6, -3, 5, -7, 3) 。

经典DP-摆动序列最大子序列长度

原文:https://www.cnblogs.com/abestxun/p/15027890.html

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