力扣(leetcode) 374. 猜数字大小 (二分法)

题目在这:https://leetcode-cn.com/problems/guess-number-higher-or-lower/

题目分析:

题目说的有点乱,实际上就是猜数字游戏,加入那你猜的是1,就通过guess函数把1传进去,返回-1 说明猜大了,返回1说明小了,返回0说明猜对了。

思路分析:

显然又是从一堆数里匹配符合条件的那个数。
又双叒叕是二分法。这周是二分法周,每日一题全是二分法。

关于二分法详解看我另一篇文章,清晰易懂,你肯定看的明明白白:https://blog.csdn.net/qq_38737428/article/details/117903312?spm=1001.2014.3001.5501

完整代码

left = 1
right = n
while left <= right:
    mid = (left+right) // 2
    if guess(mid) == 0:
        return mid
    elif guess(mid) == -1:
    # 正确数字比猜的要小
        right = mid - 1
    elif guess(mid)  == 1:
    # 正确数字比猜的要大
        left = mid + 1

如果有任何想不通的地方,看我二分法的详解,如果还是不懂,留言交流。

上一篇:猜字母游戏


下一篇:数字游戏