我们正在玩一个猜数字游戏. 游戏规则如下:
我从 1 到 n 选择一个数字. 你需要猜我选择了哪个数字.
每次你猜错了, 我会告诉你这个数字是大了还是小了.
你调用一个预先定义好的接口 guess(int num), 它会返回 3 个可能的结果 (-1,1 或 0):
-1 : 我的数字比较小
1 : 我的数字比较大
0 : 恭喜! 你猜对了!
示例 :
输入: n = 10, pick = 6
输出: 6
思路: 很简单的二分的题目, 唯一的考虑就是 溢出的可能 , 求均值的时候注意一下即可. 目前 beat
- public class Solution extends GuessGame {
- public int guessNumber(int n) {
- int min=0,max=n;
- int number = (max-min)/2+min;
- while(guess(number)!=0){
- if(number==n-1) return n;
- if(guess(number)==-1) max=number;
- else min = number;
- number = (max-min)/2+min;
- }
- return number;
- }
- }
- 100%
来源: http://www.bubuko.com/infodetail-2841004.html