本文主要是介绍LeetCode374. Guess Number Higher or Lower——二分查找,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
文章目录
- 一、题目
- 二、题解
一、题目
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 will tell you whether the number I picked is higher or lower than your guess.
You call a pre-defined API int guess(int num), which returns three possible results:
-1: Your guess is higher than the number I picked (i.e. num > pick).
1: Your guess is lower than the number I picked (i.e. num < pick).
0: your guess is equal to the number I picked (i.e. num == pick).
Return the number that I picked.
Example 1:
Input: n = 10, pick = 6
Output: 6
Example 2:
Input: n = 1, pick = 1
Output: 1
Example 3:
Input: n = 2, pick = 1
Output: 1
Constraints:
1 <= n <= 231 - 1
1 <= pick <= n
二、题解
/** * 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);*/class Solution {
public:int guessNumber(int n) {int l = 1,r = n;while(l <= r){int mid = l + ((r - l) >> 1);if(guess(mid) == 0) return mid;else if(guess(mid) == 1) l = mid + 1;else r = mid - 1;}return 0;}
};
这篇关于LeetCode374. Guess Number Higher or Lower——二分查找的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!