/**
* 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;
}
}
07-14
180
![](https://csdnimg.cn/release/blogv2/dist/pc/img/readCountWhite.png)
07-27
212
![](https://csdnimg.cn/release/blogv2/dist/pc/img/readCountWhite.png)
07-19
182
![](https://csdnimg.cn/release/blogv2/dist/pc/img/readCountWhite.png)