374. Guess Number Higher or Lower Easy

来源:互联网 发布:500px哪些摄影师 知乎 编辑:程序博客网 时间:2024/06/09 19:16

这道题是二分查找的使用。需要注意的是,求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 0int 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;        }    }};


原创粉丝点击