Skip to content
This repository was archived by the owner on Sep 20, 2023. It is now read-only.

Commit 9691275

Browse files
aQuaaQua
authored andcommitted
375 还是没有找到问题在哪里
1 parent deab71b commit 9691275

File tree

1 file changed

+6
-13
lines changed

1 file changed

+6
-13
lines changed

Algorithms/0375.guess-number-higher-or-lower-ii/guess-number-higher-or-lower-ii.go

Lines changed: 6 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -4,28 +4,21 @@ func getMoneyAmount(n int) int {
44

55
// dp[i][j] 保证能猜出 i<=x<=j 中 x 的具体值的最小金额
66
// dp[1][n] 是答案
7-
dp := make([][]int, n+1)
8-
for i := range dp {
9-
dp[i] = make([]int, n+1)
10-
}
7+
dp := make([]int, n+1)
118

129
MIN := 1<<63 - 1
1310

1411
var i, j, k int
1512
for j = 2; j <= n; j++ {
16-
for i = j - 1; 0 < i; i-- {
17-
dp[i][j] = MIN
18-
// 为了猜出 i<=x<=j 中的 x
19-
// 第一次,我们可以猜 x 为,i,i+1,...,j
20-
// 所有这些可能性中的最小值就是 dp[i][j] 的值
21-
for k = i; k < j; k++ {
22-
// k+max(dp[i][k-1], dp[k+1][j])) 猜 x 为 k 所花费的最小费用
23-
dp[i][j] = min(dp[i][j], k+max(dp[i][k-1], dp[k+1][j]))
13+
for i = 1; i < j; i++ {
14+
dp[j] = MIN
15+
for k = 1; k < i; k++ {
16+
dp[j] = min(dp[j], k+max(dp[k-1], k+dp[i-k]))
2417
}
2518
}
2619
}
2720

28-
return dp[1][n]
21+
return dp[n]
2922
}
3023

3124
func max(a, b int) int {

0 commit comments

Comments
 (0)