[LeetCode] Challenge log 374

374. Guess Number Higher or Lower

No explainaton needed. It is a good code template for BS.


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
2
3
-1 : My number is lower
1 : My number is higher
0 : Congrats! You got it!

Example:

1
2
3
n = 10, I pick 6.

Return 6.

Soulution:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# 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):

class Solution(object):
def guessNumber(self, n):
"""
:type n: int
:rtype: int
"""
low = 1
high = n
while low < high:
mid = (low + high) // 2
g = guess(mid)
if g == 0:
return mid
elif g == 1:
low = mid + 1
else:
high = mid
return low
0%