From 3542f9e6ac9e64dfe83dd1a567ae54a0d89c7e22 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=94=90=E6=A0=91=E6=A3=AE?= <14021051@buaa.edu.cn> Date: Wed, 10 Oct 2018 21:28:35 +0800 Subject: [PATCH] Create 374. Guess Number Higher or Lower.md --- 374. Guess Number Higher or Lower.md | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 374. Guess Number Higher or Lower.md diff --git a/374. Guess Number Higher or Lower.md b/374. Guess Number Higher or Lower.md new file mode 100644 index 0000000..fa6afaf --- /dev/null +++ b/374. Guess Number Higher or Lower.md @@ -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; + } + } +}; +```