leetcode374. 猜数字大小
【摘要】 我们正在玩一个猜数字游戏。 游戏规则如下: 我从 1 到 n 选择一个数字。 你需要猜我选择了哪个数字。 每次你猜错了,我会告诉你这个数字是大了还是小了。 你调用一个预先定义好的接口 guess(int num),它会返回 3 个可能的结果(-1,1 或 0):
-1 : 我的数字比较小 1 : 我的数...
我们正在玩一个猜数字游戏。 游戏规则如下:
我从 1 到 n 选择一个数字。 你需要猜我选择了哪个数字。
每次你猜错了,我会告诉你这个数字是大了还是小了。
你调用一个预先定义好的接口 guess(int num),它会返回 3 个可能的结果(-1,1 或 0):
-1 : 我的数字比较小
1 : 我的数字比较大
0 : 恭喜!你猜对了!
示例 :
输入: n = 10, pick = 6
输出: 6
思路:二分
-
/* The guess API is defined in the parent class GuessGame.
-
@param num, your guess
-
@return -1 if my number is lower, 1 if my number is higher, otherwise return 0
-
int guess(int num); */
-
-
public class Solution extends GuessGame {
-
public int guessNumber(int n) {
-
int low = 1;
-
int high = n;
-
while (low <= high) {
-
int mid = low + (high - low) / 2;
-
int res = guess(mid);
-
if (res == 0)
-
return mid;
-
else if (res < 0)
-
high = mid - 1;
-
else
-
low = mid + 1;
-
}
-
return -1;
-
}
-
}
文章来源: fantianzuo.blog.csdn.net,作者:兔老大RabbitMQ,版权归原作者所有,如需转载,请联系作者。
原文链接:fantianzuo.blog.csdn.net/article/details/104177299
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)