这题是很简单的二分查找的题目,用的实例是一个现实经常见到的,比如年会猜钱多少的,写起来也不是很难,只是别把题目的函数功能理解反了就好了。
class Solution(object):
def guessNumber(self, n):
"""
:type n: int
:rtype: int
"""
def GuessNum(low, high):
if guess(low) == 0:
return low
if guess(high) == 0:
return high
if guess((low + high) / 2) == 1:
low = (low + high) / 2 + 1
return GuessNum(low, high - 1)
if guess((low + high) / 2) == -1:
high = (low + high) / 2 - 1
print '1'
return GuessNum(low + 1, high)
if guess((low + high) / 2) == 0:
return (low + high) / 2
return GuessNum(1, n)