LeetCode Challenge #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`
Video Solution
C++ Solution
```				```
class Solution {
public:
int guessNumber(int n) {
long int mid=n/2;
long int start=1;
long int end=n;

while(start<end)
{
mid=(start+end)/2;

if(guess(mid)==0)return mid;
else if(guess(mid)==-1) end=mid-1;
else if(guess(mid)==1)start=mid+1;
}
return start;
}
};
```
```