Guess Number Higher or Lower — Classic Binary Search with API
Advertisement
Problem 304 · Guess Number Higher or Lower
Difficulty: Easy · Pattern: Classic Binary Search
Solutions
# Python
def guessNumber(n):
lo, hi = 1, n
while lo <= hi:
mid = lo + (hi-lo)//2
g = guess(mid)
if g == 0: return mid
elif g == -1: hi = mid-1
else: lo = mid+1
return lo
// Java
public int guessNumber(int n) {
int lo=1, hi=n;
while (lo<=hi) {
int mid=lo+(hi-lo)/2, g=guess(mid);
if(g==0) return mid; else if(g==-1) hi=mid-1; else lo=mid+1;
}
return lo;
}
Complexity
- Time: O(log n)
- Space: O(1)
Advertisement