# 375. Guess Number Higher or Lower II

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: 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.


Given a particular n ≥ 1, find out how much money you need to have to guarantee a win.

1. k 就是答案，此时子问题的额外 cost = 0 ，当前位置总 cost  = k + 0;
2. k 过大，此时我们的有效区间缩小为 [i , k - 1] 当前操作总 cost  = k + dp[start][k - 1];
3. k 过小，此时我们的有效区间缩小为 [k + 1 , j] 当前操作总 cost  = k + dp[k + 1][j];

class Solution {
public:

int getMinCost(int s,int e,vector<vector<int>>& data)
{
if(s>=e)return 0;
if(data[s][e]!=0)return data[s][e];
int minCost = INT_MAX;
for(int i=s;i<=e;i++)
{
minCost = min(minCost,i+max(getMinCost(s,i-1,data),getMinCost(i+1,e,data)));
}
data[s][e]=minCost;
return data[s][e];

}
int getMoneyAmount(int n) {
vector<vector<int>> data(n+1,vector<int>(n+1,0));
return getMinCost(1,n,data);

}
};

#### leetcode 375. Guess Number Higher or Lower II 解题小结

2016-07-19 02:08:07

#### [leetcode] 375. Guess Number Higher or Lower II 解题报告

2016-07-22 08:03:14

#### leetcode(375):Guess Number Higher or Lower II

2016-08-11 17:43:52

#### [leetcode-375]Guess Number Higher or Lower II(java)

2016-07-17 16:48:24

#### 关于LeetCode中Guess Number Higher or Lower一题的理解

2016-09-08 13:52:13

#### LeetCode 374. Guess Number Higher or Lower

2016-07-13 16:06:03

#### [leetcode] 374. Guess Number Higher or Lower 解题报告

2016-07-16 03:13:27

#### LeetCode—375. Guess Number Higher or Lower II

2016-07-18 17:09:46

#### 374. Guess Number Higher or Lower [easy] (Python)

2016-07-26 19:49:27

#### <LeetCode OJ> 374. Guess Number Higher or Lower

2016-07-14 21:16:35