We are playing the Guess Game. The game is as follows:python
I pick a number from 1 to n. You have to guess which number I picked.bash
Every time you guess wrong, I'll tell you whether the number is higher or lower.函數
You call a pre-defined API guess(int num) which returns 3 possible results (-1, 1, or 0):ui
-1 : My number is lowerspa
1 : My number is highercode
0 : Congrats! You got it!string
Example :it
Input: n = 10, pick = 6 Output: 6io
思路: 二分查找法class
代碼:python3
class Solution(object):
def guessNumber(self, n):
""" :type n: int :rtype: int """
low=0
high=n
while low<=high:
gn = (low+high)//2
res = guess(gn)
if res==-1:
high = gn-1
elif res==1:
low = gn+1
else:
return gn
複製代碼
注意:儘可能少調用guess(n)函數