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

本文介绍了一种经典的猜数字游戏算法实现,通过调用预定义API进行数字猜测,并利用二分查找法逐步缩小范围,最终确定目标数字。文章提供了一个Python实现示例。
728

被折叠的 条评论
为什么被折叠?



