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 :
Input: n = 10, pick = 6 Output: 6
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | // 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) { long long l = 1, r = n; while(l<=r){ long long m = (l+r)/2; int g = guess(m); if(g==0) return m; if(g<0) r = m-1; if(g>0) l = m+1; } return -1; } }; |
No comments:
Post a Comment