1. 题目来源
链接:374. 猜数字大小
2. 题目解析
水题,二分。
时间复杂度: O ( l o g n ) O(logn) O(logn)
空间复杂度: O ( 1 ) O(1) O(1)
/**
* 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);
*/
class Solution {
public:
int guessNumber(int n) {
int l = 1, r = n;
while (l < r) {
int mid = 0ll + l + r + 1 >> 1;
//if (guess(mid) == 0) return mid; // 可有可无
if (guess(mid) == -1) r = mid - 1;
else l = mid;
}
return l;
}
};