Guess Number Higher or Lower

public class Solution extends GuessGame {
		public int guessNumber(int n) {
		
			int left = 0;
			int right = n;
			
			while (left + 1 < right) {
				int mid = left + (right - left) / 2;
				if (guess(mid) == 0) {
					return mid;
				} else if (guess(mid) == -1) {
					right = mid;
				} else {
					left = mid;
				}
			}
			if (guess(left) == 0) {
				return left;
			} else if (guess(right) == 0) {
				return right;
			} else {
				return -1;
			}
		}
}


//solution 2:
public class Solution extends GuessGame {
		public int guessNumber(int n) {
			int left = 0;
			int right = n;
			
			while (left <= right) {
				int mid = left + (right - left) / 2;
				if (guess(mid) == 0) {
					return mid;
				} else if (guess(mid) == -1) {
					right = mid - 1;
				} else {
					left = mid + 1;
				}
			}
			return -1;
		}
}

最后更新于

这有帮助吗?