当前位置: 首页> 科技> 能源 > 网络营销理论工具与方法_优质龙岗网站建设_网络营销知识_成都网站建设方案托管

网络营销理论工具与方法_优质龙岗网站建设_网络营销知识_成都网站建设方案托管

时间:2025/7/11 17:23:50来源:https://blog.csdn.net/weixin_44245188/article/details/143112357 浏览次数:0次
网络营销理论工具与方法_优质龙岗网站建设_网络营销知识_成都网站建设方案托管

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

https://leetcode.cn/problems/guess-number-higher-or-lower/description/
方法一:二分查找

记选出的数字为 pick,猜测的数字为 x。根据题目描述,若 guess(x)≤0 则说明 x≥pick,否则 x<pick。

根据这一性质我们可以使用二分查找来求出答案 pick。

二分时,记当前区间为 [left,right],初始时 left=1,right=n。记区间中间元素为 mid,若有 guess(mid)≤0 则说明 pick∈[left,mid],否则 pick∈[mid+1,right]。当区间左右端点相同时,则说明我们找到了答案,退出循环。

class Solution:def guessNumber(self, n: int) -> int:left, right = 1, nwhile left < right:mid = (left + right) // 2if guess(mid) <= 0:right = mid   # 答案在区间 [left, mid] 中else:left = mid + 1   # 答案在区间 [mid+1, right] 中# 此时有 left == right,区间缩为一个点,即为答案return left
关键字:网络营销理论工具与方法_优质龙岗网站建设_网络营销知识_成都网站建设方案托管

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: