1. 程式人生 > 其它 >374. 猜數字大小

374. 猜數字大小

題目來源:374. 猜數字大小

猜數字遊戲的規則如下:

  • 每輪遊戲,我都會從1到n隨機選擇一個數字。 請你猜選出的是哪個數字。
  • 如果你猜錯了,我會告訴你,你猜測的數字比我選出的數字是大了還是小了。

你可以通過呼叫一個預先定義好的介面int guess(int num)來獲取猜測結果,返回值一共有 3 種可能的情況(-110):

  • -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