题意:猜数字,可调用guess方法,返回猜大了还是猜小了。现在给定n,找出系统猜的数字(在1-n之间猜)
初步分析:这其实就是差不多二分差找了,只不过比大小的判断借助guess而已。我们这一把用下递归来实现二分差找。
public class Solution extends GuessGame {
public int guessNumber(int n) {
return guessNumber(1, n);
}
private int guessNumber(int low, int high) {
int numberToGuess = low + (high - low) / 2;
int guessResponse = guess(numberToGuess);
if (guessResponse == 0) {
return numberToGuess;
} else if (guessResponse == -1) {
return guessNumber(low, numberToGuess - 1);
} else {
return guessNumber(numberToGuess + 1, high);
}
}
}