猜数字游戏的规则如下:
每轮游戏,系统都会从 1 到 n 随机选择一个数字。 请你猜选出的是哪个数字。
如果你猜错了,系统会告诉你这个数字比系统选出的数字是大了还是小了。
你可以通过调用一个预先定义好的接口 guess(int num) 来获取猜测结果,返回值一共有 3 种可能的情况(-1,1 或 0):
-1 : 系统选出的数字比你猜测的数字小
1 : 系统选出的数字比你猜测的数字大
0 : 恭喜!你猜对了!
示例 :
输入: n = 10, pick = 6
输出: 6
代码:
"""
@author: WowlNAN
"""
# 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 a(self, left, right):
if left>=right:
return left
mid=int((left+right)/2)
v=guess(mid)
if v==-1:
return self.a(left, mid-1)
elif v==1:
return self.a(mid+1, right)
else:
return mid
def guessNumber(self, n: int) -> int:
return self.a(1, n)
题目来源:力扣(LeetCode)