L374 Guess Number Higher or Lower
Problem
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!
Input: n = 10, pick = 6 Output: 6
Solution:
we already got a function which is guess
use binary search.
TC: log(n) SC:O1;
public int guessNum(int n ){
if(n == 0) return n;
int left = 0, rihgt = n;
while(left + 1 < right){
int mid = left + (right - left)/2;
if(guess(mid) < 0){
right = mid;
}else{
left = mid;
}
}
return guess(left) == 0? left : right;
}
Last updated
Was this helpful?