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?