374.猜数大小(javascript)374.GuessNumberHigherorLower

原创
小哥 3年前 (2022-11-10) 阅读数 7 #大杂烩

猜谜游戏的规则如下:

每一轮比赛,我都会从 1 到 n 随机选择一个数字。 请猜猜你选了哪个号码。
如果你猜错了,我会告诉你你猜的数字比我选择的数字大还是小。
您可以调用预定义的接口。 int guess(int num) 为了得到猜测结果,返回值是通用的。 3 可能的情况(-1,1 或 0):

-1我选择的数字比你猜的数字小。 pick < num
1:我选择的数字比你猜的数字大。 pick > num
0我选择了和你猜的一样的号码。祝贺你猜对了!pick == num
返回我选择的号码。

示例 1:

输入:n = 10, pick = 6
输出:6

示例 2:

输入:n = 1, pick = 1
输出:1

示例 3:

输入:n = 2, pick = 1
输出:1

示例 4:

输入:n = 2, pick = 2
输出:2

提示:

  • 1 <= n <= 231 - 1
  • 1 <= pick <= n

二分查找

var guessNumber = function (n) {
    let left = 1, right = n
    while (left <= right) {
        let mid = Math.floor((left + right) / 2)
        if (guess(mid) == -1) {
            right = mid - 1
        } else if (guess(mid) == 1) {
            left = mid + 1
        } else {
            return mid
        }
    }
};

leetcode: https://leetcode-cn.com/problems/guess-number-higher-or-lower/

版权声明

所有资源都来源于爬虫采集,如有侵权请联系我们,我们将立即删除