LC374. Guess Number Higher or Lower¶
Problem Description¶
LeetCode Problem 374: 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 will tell you whether the number I picked is higher or lower than your guess.
You call a pre-defined API int guess(int num)
, which returns three possible results:
-1
: Your guess is higher than the number I picked (i.e.num > pick
).1
: Your guess is lower than the number I picked (i.e.num < pick
).0
: your guess is equal to the number I picked (i.e.num == pick
).
Return the number that I picked.
Clarification¶
- picked number is between 1 to n number
- call guess to return guess results
Assumption¶
Solution¶
Approach - Binary Search¶
Essentially, the problem is to find the target in an array of 1 to n (sorted). We can use binary search to find the picked number by using the guess results from the api function.
Complexity Analysis¶
- Time complexity: \(O(\log n)\)
Since using binary search, the time complexity is \(O(\log n)\). - Space complexity: \(O(1)\)
Just use two index variables.