LC.374. Guess Number Higher or Lower

https://leetcode.com/problems/guess-number-higher-or-lower/description/
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'll tell you whether the number is higher or lower.

You call a pre-defined API guess(int num) which returns 3 possible results (-1, 1, or 0):

-1 : My number is lower
1 : My number is higher
0 : Congrats! You got it!
Example:
n = 10, I pick 6.

Return 6.

 1 public int guessNumber(int n) {
 2         int left = 1, right = n;
 3         while (left <= right) {
 4             int mid = left + (right - left) / 2;
 5             if (guess(mid) == 0) {
 6                 return mid;
 7             }
 8             //target is lower than mid
 9             else if (guess(mid) == -1) {
10                 right = mid - 1;
11             }
12             //target is higher than mid
13             else {
14                 left = mid + 1;
15             }
16         }
17         //since left and right are at the same spot
18         return left;
19     }

没有难度,但是需要理解:这其实是说TARGET 和 MID 的关系

-1 : My number is lower
1 : My number is higher
0 : Congrats! You got it!
原文地址:https://www.cnblogs.com/davidnyc/p/8606809.html