*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;
};
```