LeetCode Solutions
374. Guess Number Higher or Lower
Time: $O(\log n)$ Space: $O(1)$
/**
* Forward declaration of guess API.
* (The problem description is not clear, so I translate it into follows.)
*
* @param traget num
* guess num
*
* @return -1 if guess num > target num
* 0 if guess num == target num
* 1 if guess num < target num
*/
class Solution {
public:
int guessNumber(int n) {
int l = 1;
int r = n;
// Find the first guess num that >= target num
while (l < r) {
const int m = l + (r - l) / 2;
if (guess(m) <= 0) // -1, 0
r = m;
else
l = m + 1;
}
return l;
}
};
/**
* Forward declaration of guess API.
* (The problem description is not clear, so I translate it into follows.)
*
* @param traget num
* guess num
*
* @return -1 if guess num > target num
* 0 if guess num == target num
* 1 if guess num < target num
*/
public class Solution extends GuessGame {
public int guessNumber(int n) {
int l = 1;
int r = n;
// Find the first guess num that >= target num
while (l < r) {
final int m = l + (r - l) / 2;
if (guess(m) <= 0) // -1, 0
r = m;
else
l = m + 1;
}
return l;
}
}