/*
* @lc app=leetcode.cn id=374 lang=java
*
* [374] 猜数字大小
*/
// @lc code=start
/**
* Forward declaration of guess API.
* @param num your guess
* @return -1 if num is higher than the picked number
* 1 if num is lower than the picked number
* otherwise return 0
* int guess(int num);
*/
public class Solution extends GuessGame {
/**
* 二分法
* 25/25 cases passed (0 ms)
Your runtime beats 100 % of java submissions
Your memory usage beats 82.92 % of java submissions (39.3 MB)
*/
public int guessNumber(int n) {
int left = 0, right = n;
while(left < right){
// 防止越界
int mid = (left + ((right - left) >> 1));
// Note:right + left 越界
// mid = (right + left)/2;
int res = guess(mid);
switch(res){
case 0:
return mid;
// break;
case 1:
left = mid + 1;
break;
case -1:
right = mid - 1;
break;
}
}
return left;
}
}
// @lc code=end
[374] 猜数字大小
最新推荐文章于 2024-09-27 00:32:45 发布