374. Guess Number Higher or Lower java
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,猜小时提醒-1,猜对时提醒0,问:在猜出来的数字是多少?
思路:按照二分法的顺序来猜,根据提示的大小选择左半部分还是右半部分。
java:
public class Solution extends GuessGame { public int guessNumber(int n) { int left=1; int right=n; while(left<=right)//按照二分法来猜 { int number=left+(right-left)/2; count=guess(number); if(count==0) return number;//猜对直接返回 else if(count==1)//猜大时,选择左半部分 left=number+1; else { right=number-1;//猜小时选择右半部分 } } return -1; } }