您的位置:首页 > 产品设计 > UI/UE

leetcode[Guess Number Higher or Lower]

2017-07-14 00:31 351 查看
/* The guess API is defined in the parent class GuessGame.
@param num, your guess
@return -1 if my number is lower, 1 if my number is higher, otherwise return 0
int guess(int num); */

public class Solution extends GuessGame {
//其实就是一个检索算法,可以视其为二分检索(因为大小是从1到n)
public int guessNumber(int n) {
int low = 1, high = n;
//int mid = (low + high) / 2; 二分检索的一个同样的问题,计算mid都不采用这样的计算方式
//而应该采用下面的计算方式
int mid = low + (high - low) / 2;
while(low <= high){
mid = low + (high - low) / 2;
if(guess(mid) == 0){
return mid;
}
else if(guess(mid) == 1){
low = mid + 1;
}
else{
high = mid -1;
}

//System.out.println(low + " " + mid + " " + high);
}

return low;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: