程式語言 - LeetCode - C++ - 374. Guess Number Higher or Lower



參考資訊:
https://algo.monster/liteproblems/374
https://www.cnblogs.com/grandyang/p/5666502.html

題目:


解答:

/** 
 * Forward declaration of guess API.
 * @param  num   your guess
 * @return       -1 if num is higher than the picked number
 *                1 if num is lower than the picked number
 *               otherwise return 0
 * int guess(int num);
 */
 
class Solution {
public:
    int guessNumber(int n) {
        long l = 0;
        long r = n;
         
        while (l < r) {
            int v = l + ((r - l) >> 1);
 
            int t = guess(v);
            if (t < 0) { 
                r = v;
            }
            else if (t > 0) {
                l = v + 1;
            }
            else {
                return v;
            }
        }
 
        return l;
    }
};