374. 猜數字大小
阿新 • • 發佈:2021-06-14
題目來源:374. 猜數字大小
猜數字遊戲的規則如下:
- 每輪遊戲,我都會從1到n隨機選擇一個數字。 請你猜選出的是哪個數字。
- 如果你猜錯了,我會告訴你,你猜測的數字比我選出的數字是大了還是小了。
你可以通過呼叫一個預先定義好的介面int guess(int num)
來獲取猜測結果,返回值一共有 3 種可能的情況(-1
,1
或0
):
- -1:我選出的數字比你猜的數字小
pick < num
- 1:我選出的數字比你猜的數字大
pick > num
- 0:我選出的數字和你猜的數字一樣。恭喜!你猜對了!
pick == num
返回我選出的數字。
/** * Forward declaration of guess API. * @param {number} 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 * var guess = function(num) {}*/ /** * @param {number} n * @return {number} */ var guessNumber = function(n) { let left = 1, right=n; while(left<right){ let mid = Math.floor((left+right)/2); let check = guess(mid); if(check === 0){ return mid; }else if(check === -1){ right=mid; }else{ left=mid+1; } } return left; };
示例 1:
輸入:n = 10, pick = 6 輸出:6
示例 2:
輸入:n = 1, pick = 1 輸出:1
示例 3:
輸入:n = 2, pick = 1 輸出:1
示例 4:
輸入:n = 2, pick = 2 輸出:2
提示:
1 <= n <= 231- 1
1 <= pick <= n