网站建设对帮助信息的设置,做视频网站用网站空间还是服务器,设计公司起名及寓意,网站建设釒首先金手指十五题目链接#xff1a;374. 猜数字大小#xff08;简单#xff09; 算法原理#xff1a; 解法#xff1a;二分查找 0ms击败100.00% 时间复杂度O(LogN) 思路很简单#xff0c;就是最左端点模型的基础应用 边界初始化#xff1a;设置左边界 left 0#xff0c;右边界 right…题目链接374. 猜数字大小简单算法原理解法二分查找0ms击败100.00%时间复杂度O(LogN)思路很简单就是最左端点模型的基础应用边界初始化设置左边界 left 0右边界 right n将搜索范围限定在 [0, n]循环收缩范围循环条件为 left right当左右边界重合时停止计算中间值 mid left (right - left) / 2避免 (left right) / 2 可能的整数溢出调用 guess(mid) 获取反馈若返回 0mid 即为目标数直接返回若返回 1mid 目标数目标在 [mid1, right]调整 left mid 1若返回 -1mid 目标数目标在 [left, mid]调整 right mid返回结果循环结束时 left right此时 left或 right即为目标数返回即可Java代码/** * 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); */ public class Solution extends GuessGame { public int guessNumber(int n) { int left0,rightn; while(leftright){ int midleft(right-left)/2; if(guess(mid)0) return mid; else if(guess(mid)0) leftmid1; else rightmid; } return left; } }