Last updated: Nov 27, 2022
Difficulty | Runtime | Faster_than | Memory | Lesser_than |
---|---|---|---|---|
easy | 79 ms | 75.62 % | 41.9 mb | 40.97 % |
Difficulty : easy
Runtime : 79 ms Faster than 75.62 %
Memory : 41.9 mb Lesser than 40.97 %
374. Guess Number Higher or Lower
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.
Example 1: Input: n = 10, pick = 6 Output: 6
Example 2: Input: n = 1, pick = 1 Output: 1
Example 3: Input: n = 2, pick = 1 Output: 1
Constraints:
- 1 <= n <= 231 - 1
- 1 <= pick <= n
Solution:
/**
* Forward declaration of guess API.
* @param {number} num your guess
* @return -1 if num is higher than the picked number
* 1 if num is lower than the picked number
* otherwise return 0
* var guess = function(num) {}
*/
/**
* @param {number} n
* @return {number}
*/
var guessNumber = function(n) {
if(guess(n) == 0) return n;
let newPick = Math.floor(n/2);
let start = 1;
let end = n;
while(guess(newPick) != 0){
if(guess(newPick) == -1){
end = newPick;
} else {
start = newPick;
}
newPick = Math.floor((start+end)/2);
}
return newPick;
};