We’re playing a guessing game, someone picks a number and we have to guess it. They tell us whether we’ve guessed the number using the guess() API, or receive a 1 or -1 response if the number is higher or lower, respectively. We use binary search to guess the number.
The solution is as follows:
class Solution:
def guessNumber(self, n: int) -> int:
l, r = 1, n
while l <= r:
m = (r + l) // 2
res = guess(m)
if not res:
return m
elif res > 0:
l = m + 1
else:
r = m - 1
_ Time Complexity:
O(log(n)) - We use binary search to find the number.
_ Space Complexity:
O(1) - We use constant space to retain our variables.