375. Guess Number Higher or Lower II
2017-02-25 18:37
381 查看
We are playing the Guess Game. The game is as follows:
I pick a number from 1 to n. You have to guess which number I picked.
Every time you guess wrong, I'll tell you whether the number I picked is higher or lower.
However, when you guess a particular number x, and you guess wrong, you pay $x. You win the game when you guess the number I picked.
Example:
dp[i][j]为从i到j的最小值 dp[i][j]
= min (i<=k<=j) { k + max(dp[i][k-1], dp[k+1][j]) }
public class Solution {
public int getMoneyAmount(int n) {
if(n==1) return 0;
int[][] dp=new int[n+1][n+1];
for(int dis=1;dis<n;dis++){
for(int i=0;i+dis<=n;i++){
dp[i][i+dis]=Integer.MAX_VALUE;
for(int k=i;k<=i+dis;k++){
dp[i][i+dis]=Math.min(dp[i][i+dis],k+Math.max(k-1>=i?dp[i][k-1]:0,k+1<=i+dis?dp[k+1][i+dis]:0));
}
}
}
return dp[1]
;
}
}
I pick a number from 1 to n. You have to guess which number I picked.
Every time you guess wrong, I'll tell you whether the number I picked is higher or lower.
However, when you guess a particular number x, and you guess wrong, you pay $x. You win the game when you guess the number I picked.
Example:
n = 10, I pick 8. First round: You guess 5, I tell you that it's higher. You pay $5. Second round: You guess 7, I tell you that it's higher. You pay $7. Third round: You guess 9, I tell you that it's lower. You pay $9. Game over. 8 is the number I picked. You end up paying $5 + $7 + $9 = $21.
dp[i][j]为从i到j的最小值 dp[i][j]
= min (i<=k<=j) { k + max(dp[i][k-1], dp[k+1][j]) }
public class Solution {
public int getMoneyAmount(int n) {
if(n==1) return 0;
int[][] dp=new int[n+1][n+1];
for(int dis=1;dis<n;dis++){
for(int i=0;i+dis<=n;i++){
dp[i][i+dis]=Integer.MAX_VALUE;
for(int k=i;k<=i+dis;k++){
dp[i][i+dis]=Math.min(dp[i][i+dis],k+Math.max(k-1>=i?dp[i][k-1]:0,k+1<=i+dis?dp[k+1][i+dis]:0));
}
}
}
return dp[1]
;
}
}
相关文章推荐
- 375. Guess Number Higher or Lower II
- 375. Guess Number Higher or Lower II
- leetcode 375. Guess Number Higher or Lower II
- leetcode375 Guess Number Higher or Lower II
- leetcode 375. Guess Number Higher or Lower II
- leetcode.375. Guess Number Higher or Lower II
- 375. Guess Number Higher or Lower II
- 375. Guess Number Higher or Lower II
- 375. Guess Number Higher or Lower II
- 375. Guess Number Higher or Lower II
- leetcode 375. Guess Number Higher or Lower II 解题报告
- 375. Guess Number Higher or Lower II -Medium
- 375. Guess Number Higher or Lower II
- [LeetCode] 375. Guess Number Higher or Lower II
- 375. Guess Number Higher or Lower II
- [leetcode] 375. Guess Number Higher or Lower II
- 375. Guess Number Higher or Lower II
- 375. Guess Number Higher or Lower II
- 375. Guess Number Higher or Lower II
- 375. Guess Number Higher or Lower II