374. Guess Number Higher or Lower
374. Guess Number Higher or Lower
初雪之音 发表于10个月前
374. Guess Number Higher or Lower
  • 发表于 10个月前
  • 阅读 4
  • 收藏 1
  • 点赞 0
  • 评论 0

腾讯云 技术升级10大核心产品年终让利>>>   

We are playing the Guess Game. The game is as follows:

I pick a number from 1 to n. You have to guess which number I picked.

Every time you guess wrong, I'll tell you whether the number is higher or lower.

You call a pre-defined API guess(int num) which returns 3 possible results (-1, 1, or 0):

-1 : My number is lower
 1 : My number is higher
 0 : Congrats! You got it!

Example:

n = 10, I pick 6.

Return 6.

思路:二分查找法(基础)

/* 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 {
    public int guessNumber(int n) {
		int result = -1;

		if (n >= 1) {
			int low = 1, hight = n;
			while (low <= hight) {
				int mid = (hight - low) / 2 + low;
				if (guess(mid) == -1) {
					hight = mid - 1;
				} else if (guess(mid) == 1) {
					low = mid + 1;
				} else {
					result = mid;
					break;
				}
			}
		}

		return result;
	}
}

 

标签: leetcode
共有 人打赏支持
粉丝 37
博文 229
码字总数 129645
×
初雪之音
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: