1class Solution {2public:3int wiggleMaxLength(vector<int> &nums) {4vector<vector<int>> dp(2, vector<int>(nums.size(), 0));5int ans = 1, high, low;6dp[0][0] = dp[1][0] = 1;7for (int i = 1; i < nums.size(); ++i) {8high = low = 0;9for (int j = 0; j < i; ++j) {10if (nums[i] > nums[j])11low = max(low, dp[1][j]);12else if (nums[i] < nums[j])13high = max(high, dp[0][j]);14}15dp[0][i] = low + 1;16dp[1][i] = high + 1;17ans = max({ans, dp[0][i], dp[1][i]});18}19return ans;20}21};