mirror of
https://github.com/ShusenTang/LeetCode.git
synced 2024-09-02 14:20:01 +00:00
Create 374. Guess Number Higher or Lower.md
This commit is contained in:
parent
5525899477
commit
3542f9e6ac
24
374. Guess Number Higher or Lower.md
Normal file
24
374. Guess Number Higher or Lower.md
Normal file
@ -0,0 +1,24 @@
|
||||
# [374. Guess Number Higher or Lower](https://leetcode.com/problems/guess-number-higher-or-lower/description/)
|
||||
# 思路
|
||||
二分法。
|
||||
注意计算mid的时候防止溢出,见代码。
|
||||
# C++
|
||||
```
|
||||
// Forward declaration of guess API.
|
||||
// @param num, your guess
|
||||
// @return -1 if my number is lower, 1 if my number is higher, otherwise return 0
|
||||
int guess(int num);
|
||||
|
||||
class Solution {
|
||||
public:
|
||||
int guessNumber(int n) {
|
||||
int low = 1, high= n, mid;
|
||||
while(low <= high){
|
||||
mid = low + (high - low) / 2; // 不用 mid = (low + high) / 2, 因为这样可能溢出
|
||||
if(guess(mid) == 0) return mid;
|
||||
else if(guess(mid) > 0) low = mid + 1;
|
||||
else high = mid - 1;
|
||||
}
|
||||
}
|
||||
};
|
||||
```
|
Loading…
Reference in New Issue
Block a user