Thursday, July 11, 2019

LeetCode [374] Guess Number Higher or Lower

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 (-11, 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