列表

详情


374. 猜数字大小

猜数字游戏的规则如下:

你可以通过调用一个预先定义好的接口 int guess(int num) 来获取猜测结果,返回值一共有 3 种可能的情况(-11 或 0):

返回我选出的数字。

 

示例 1:

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

示例 2:

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

示例 3:

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

示例 4:

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

 

提示:

相似题目

第一个错误的版本

猜数字大小 II

找到 K 个最接近的元素

原站题解

去查看

上次编辑到这里,代码来自缓存 点击恢复默认模板
/** * Forward declaration of guess API. * @param num your guess * @return -1 if num is lower than the guess number * 1 if num is higher than the guess number * otherwise return 0 * int guess(int num); */ class Solution { public: int guessNumber(int n) { } };

golang 解法, 执行用时: 0 ms, 内存消耗: 1.9 MB, 提交时间: 2021-05-23 22:31:47

/** 
 * Forward declaration of guess API.
 * @param  num   your guess
 * @return 	     -1 if num is lower than the guess number
 *			      1 if num is higher than the guess number
 *               otherwise return 0
 * func guess(num int) int;
 */

func guessNumber(n int) int {
    low, high := 1, n
    num := 1
    c := 0
    for low <= high {
        num = (high-low)/2 + low
        c = guess(num)
        if c == 0 {
            return num
        } else if c == -1 {
            high = num - 1
        } else {
            low = num + 1
        }
    }
    return num
}

上一题