猜數字游戲的規則如下:
每輪游戲,系統都會從 1 到 n 隨機選擇一個數字。 請你猜選出的是哪個數字。
如果你猜錯了,系統會告訴你這個數字比系統選出的數字是大了還是小了。
你可以通過調用一個預先定義好的接口 guess(int num) 來獲取猜測結果,返回值一共有 3 種可能的情況(-1,1 或 0):
-1 : 系統選出的數字比你猜測的數字小
1 : 系統選出的數字比你猜測的數字大
0 : 恭喜!你猜對了!
示例 :
輸入: n = 10, pick = 6
輸出: 6
代碼
/** * Forward declaration of guess API.* @param num your guess* @return -1 if num is lower than the guess number* 1 if num is higher than the guess number* otherwise return 0* int guess(int num);*/public class Solution extends GuessGame {public int guessNumber(int n) {int l=1,r=n;while (l<=r)//二分查找結果{int mid=(r-l)/2+l;if(guess(mid)==0)return mid;else if(guess(mid)>0)l=mid+1;else r=mid-1;}return l;}
}