其他分享
首页 > 其他分享> > 经典DP-摆动序列最大子序列长度

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

作者:互联网

链接: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) 。

标签:状态,cn,int,摆动,序列,长度,DP
来源: https://www.cnblogs.com/abestxun/p/15027890.html