leetcode-376-摆动序列

class Solution {

public:

    int wiggleMaxLength(vector<int>& nums) {

        if (nums.size() < 2) return nums.size();

        int res =1;

        vector<vector<int>> dp(nums.size(), vector<int>(2,1));

        for (int i=1; i<nums.size(); i++){

            for (int j=0; j<i; j++){

                if (nums[j] > nums[i]){

                    dp[i][0] = max(dp[i][0], dp[j][1]+1);

                }

                if (nums[j] < nums[i]){

                    dp[i][1] = max(dp[i][1], dp[j][0]+1);

                }

            }

            res = max(max(dp[i][0], dp[i][1]), res);

        }

        return res;

    }

};

相关文章: