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 is higher or lower.
You call a pre-defined API guess(int num)
which returns 3 possible results (-1, 1, or 0):
-1 : My number is lower
1 : My number is higher
0 : Congrats! You got it!
Example:
n = 10, I pick 6. Return 6.
// Forward declaration of guess API.
//@param num, your guess
//@return -1 if my number is lower,1 if my number is higher,otherwise return 0
int guess(int num);
class Solution {
public:
int guessNumber(int n) {
//if(guess(n) == 0) return n;
int flag;
int b = 1,e = n;
int guessN;
while(b < e){
guessN = b+(e-b)/2;
//(b+e)/2就是错的,是因为两个大数相加可能和超过最大范围了或比较费时??
flag = guess(guessN);
if(flag == 0)
return guessN;
if(flag == 1)
b = guessN +1 ;
else
e = guessN - 1;
}
return b;
}
};