1. 程式人生 > >Leetcode-374. 猜數字大小

Leetcode-374. 猜數字大小

我們正在玩一個猜數字遊戲。 遊戲規則如下:
我從 1 到 n 選擇一個數字。 你需要猜我選擇了哪個數字。
每次你猜錯了,我會告訴你這個數字是大了還是小了。
你呼叫一個預先定義好的介面 guess(int num),它會返回 3 個可能的結果(-11 或 0):

-1 : 我的數字比較小
 1 : 我的數字比較大
 0 : 恭喜!你猜對了!

示例:

n = 10, 我選擇 6.

返回 6.

解答:

// 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) {
        int left = 1;
        int right = n;
        int mid;
        while(left<=right){
            mid = left + (right-left)/2;
            if(guess(mid)==0) return mid;
            else if(guess(mid)==1) left = mid+1;
            else if(guess(mid)==-1) right = mid-1;
        }
        return mid;
    }
};