Skip to content

Commit a83822a

Browse files
authored
Update guess-number-higher-or-lower-ii.cpp
1 parent 95694b6 commit a83822a

File tree

1 file changed

+20
-0
lines changed

1 file changed

+20
-0
lines changed

C++/guess-number-higher-or-lower-ii.cpp

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,26 @@
22
// Space: O(n^2)
33

44
class Solution {
5+
public:
6+
int getMoneyAmount(int n) {
7+
vector<vector<int>> dp(n + 1, vector<int>(n + 1)); // dp[i][j]: min pay in [i+1, j+1)
8+
for (int j = 0; j <= n; ++j) {
9+
for (int i = j - 2; i >= 0; --i) {
10+
dp[i][j] = numeric_limits<int>::max();
11+
for (int k = i; k < j; ++k) {
12+
if (max(dp[i][k], dp[k + 1][j]) < dp[i][j] - (k + 1)) {
13+
dp[i][j] = (k + 1) + max(dp[i][k], dp[k + 1][j]);
14+
}
15+
}
16+
}
17+
}
18+
return dp[0][n];
19+
}
20+
};
21+
22+
// Time: O(n^3)
23+
// Space: O(n^2)
24+
class Solution2 {
525
public:
626
int getMoneyAmount(int n) {
727
vector<vector<int>> dp(n + 1, vector<int>(n + 1)); // dp[i][j]: min pay in [i+1, j+1)

0 commit comments

Comments
 (0)