LeetCode -- 374. 猜数字大小

/**
 * 374. 猜数字大小
 *
 * 经典二分查找题目,不解释
 * 唯一注意点:
 * 注意 middle = left + (right - left) / 2;
 * 其中 left + (right - left) 这样写是为了防止溢出错误
 * 
 */
public class Solution374 {
    int pack  = 89890;
    public int guessNumber(int n) {
        int left = 1, right = n;
        int res = n;
        while (left <= right) {
            int middle = left + (right - left) / 2;
            if (guess(middle) == 0) {
                res = middle;
                break;
            } else if (guess(middle) < 0) {
                right = middle - 1;
            } else {
                left = middle + 1;
            }
        }
        return res;
    }
}
上一篇:java包机制


下一篇:剑指offer-面试题53_3-数组中数值和下标相等的元素-二分查找