374. Guess Number Higher or Lower Easy

這道題是二分查找的使用。需要注意的是,求mid不可以用(right + left)/ 2,因爲可能會越界,超過int的最大值,應該用(right - left)/ 2 + left。

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


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章