題目
- 猜數字游戲的規則如下:
每輪游戲,我都會從 1 到 n 隨機選擇一個數字, 請你猜選出的是哪個數字,
如果你猜錯了,我會告訴你,你猜測的數字比我選出的數字是大了還是小了,
你可以通過呼叫一個預先定義好的介面 int guess(int num) 來獲取猜測結果,回傳值一共有 3 種可能的情況(-1,1 或 0):-1:我選出的數字比你猜的數字小 pick < num
1:我選出的數字比你猜的數字大 pick > num
0:我選出的數字和你猜的數字一樣,pick == num
示例 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 <= 2^31 - 1
1 <= pick <= n
代碼
/**
* 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 low = 1;
int high = n;
while (low < high) {
int mid = low + (high - low) / 2;
if (guess(mid) == 0) {
return mid;
} else if (guess(mid) < 0) {
high = mid - 1;
}else {
low = mid + 1;
}
}
return low;
}
}
結果
| 用時 | 記憶體 |
|---|---|
| 擊敗100.00% | 擊敗76.54% |
來源:力扣(LeetCode) 鏈接:https://leetcode-cn.com/problems/roman-to-integer
著作權歸領扣網路所有,商業轉載請聯系官方授權,非商業轉載請注明出處,
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/211297.html
標籤:其他
上一篇:鄭州輕工業大學新生周賽2題解
