LeetCode简单题之猜数字大小
生活随笔
收集整理的這篇文章主要介紹了
LeetCode简单题之猜数字大小
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
題目
猜數字游戲的規則如下:
每輪游戲,我都會從 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 <= 2^31 - 1
1 <= pick <= n
來源:力扣(LeetCode)
解題思路
??給定了范圍和判斷條件,我們就能確定猜的數字是在那個子集里。給定的范圍天生是一個有序的序列,所以這個題本質上還是一個二分查找的題,鑒于此,我們可以采用不識別相等的二分查找進行。
# The guess API is already defined for you.
# @param num, your guess
# @return -1 if my number is lower, 1 if my number is higher, otherwise return 0
# def guess(num: int) -> int:class Solution:def guessNumber(self, n: int) -> int:low,high=1,nwhile low<high:mid=(low+high)//2if guess(mid)>0:low=mid+1else:high=midreturn low
總結
以上是生活随笔為你收集整理的LeetCode简单题之猜数字大小的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: LeetCode简单题之字符串中的最大奇
- 下一篇: LeetCode简单题之换酒问题