We are playing the Guess Game. The game is as follows:
I pick a number from 1 to n. You have to guess which number I picked.
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
):
-1 : My number is lower 1 : My number is higher 0 : Congrats! You got it!
Example:
n = 10, I pick 6. Return 6.
Subscribe to see which companies asked this question
这个就是酒桌上经常玩的猜数字的游戏,说白了就是二分查找
容易引起误会的是,-1 和 1 表示的到底是大了还是小了
class Solution(object):
def guessNumber(self, n):
start = 1
mid = n/2
res = guess(mid)
while res != 0:
#print res,start,mid,n
if res == 1:
start = mid + 1
mid = (start + n) / 2
res = guess(mid)
elif res == -1:
n = mid - 1
mid = (start + n) / 2
res = guess(mid)
return mid