Skip to content

Commit 239f596

Browse files
authored
Update find-the-maximum-length-of-a-good-subsequence-i.cpp
1 parent 5d7335e commit 239f596

File tree

1 file changed

+21
-0
lines changed

1 file changed

+21
-0
lines changed

C++/find-the-maximum-length-of-a-good-subsequence-i.cpp

+21
Original file line numberDiff line numberDiff line change
@@ -39,3 +39,24 @@ class Solution2 {
3939
return result[k];
4040
}
4141
};
42+
43+
// Time: O(n^2 * k)
44+
// Space: O(n * k)
45+
// dp
46+
class Solution3 {
47+
public:
48+
int maximumLength(vector<int>& nums, int k) {
49+
vector<vector<int>> dp(size(nums), vector<int>(k + 1));
50+
int result = 0;
51+
for (int i = 0; i < size(nums); ++i) {
52+
dp[i][0] = 1;
53+
for (int l = 0; l <= k; ++l) {
54+
for (int j = 0; j < i; ++j) {
55+
dp[i][l] = max({dp[i][l], nums[j] == nums[i] ? dp[j][l]+ 1 : 1, l - 1 >= 0 ? dp[j][l - 1] + 1 : 1});
56+
}
57+
result = max(result, dp[i][l]);
58+
}
59+
}
60+
return result;
61+
}
62+
};

0 commit comments

Comments
 (0)