当前位置: 首页 > wzjs >正文

做网站app怎么赚钱吗网站备案信息被工信部删除

做网站app怎么赚钱吗,网站备案信息被工信部删除,英国搜索引擎,网站站点建设端口号的作用文章目录 问题描述算法思路&#xff1a;二分查找法关键步骤 代码实现代码解释高频疑问解答1. 为什么循环条件是 left < right 而不是 left < right&#xff1f;2. 为什么比较 nums[mid] > nums[right] 而不是 nums[left] < nums[mid]&#xff1f;3. 为什么 right …

文章目录

    • 问题描述
    • 算法思路:二分查找法
      • 关键步骤
    • 代码实现
    • 代码解释
    • 高频疑问解答
      • 1. 为什么循环条件是 `left < right` 而不是 `left <= right`?
      • 2. 为什么比较 `nums[mid] > nums[right]` 而不是 `nums[left] <= nums[mid]`?
      • 3. 为什么 `right = mid` 而不是 `right = mid - 1`?
    • 总结

问题描述

已知一个长度为 n旋转排序数组(例如原数组 [0,1,2,4,5,6,7] 旋转后可能变为 [4,5,6,7,0,1,2]),要求以 O(log n) 的时间复杂度找到数组中的最小值。


算法思路:二分查找法

旋转排序数组的特点是部分有序,可以通过二分查找法快速定位最小值。核心思路是通过比较中间元素与右边界元素,逐步缩小搜索范围

关键步骤

  1. 初始化指针:左指针 left = 0,右指针 right = nums.length - 1
  2. 循环条件:当 left < right 时继续循环。
  3. 计算中间位置mid = left + (right - left) / 2(避免整数溢出)。
  4. 比较与调整指针
    • nums[mid] > nums[right],说明最小值在右半段,调整左指针 left = mid + 1
    • 否则,最小值在左半段或当前 mid 位置,调整右指针 right = mid
  5. 终止条件:当 left == right 时,找到最小值。

代码实现

class Solution {public int findMin(int[] nums) {int left = 0;int right = nums.length - 1;while (left < right) {int mid = left + (right - left) / 2;if (nums[mid] > nums[right]) {left = mid + 1;} else {right = mid;}}return nums[left];}
}

代码解释

代码片段说明
int left = 0初始化左指针指向数组起始位置。
int right = nums.length - 1初始化右指针指向数组末尾位置。
mid = left + (right - left) / 2计算中间位置,避免直接相加导致的整数溢出。
nums[mid] > nums[right]比较中间元素与右边界元素,决定搜索方向。
left = mid + 1中间元素大于右边界,最小值在右侧,左指针右移。
right = mid中间元素小于等于右边界,最小值在左侧或当前 mid 位置,右指针左移。
return nums[left]循环结束时 leftright 重合,指向最小值。

高频疑问解答

1. 为什么循环条件是 left < right 而不是 left <= right

  • 核心逻辑:当 left == right 时,已经锁定唯一可能的最小值位置,无需继续循环。
  • 示例分析
    • 若数组只有一个元素(如 [3]),直接返回 nums[0]
    • 若数组未旋转(如 [1,2,3,4]),最终 leftright 会收敛到 0
  • 风险提示:若使用 left <= right,当 left == right 时,循环内会计算一次 mid = left,但此时已找到结果,多余的循环可能引发逻辑错误。

2. 为什么比较 nums[mid] > nums[right] 而不是 nums[left] <= nums[mid]

  • 核心逻辑:旋转数组的最小值一定在“右半段”或“左半段”的分界点,直接比较中间元素和右边界可精准定位方向。
  • 示例分析
    • 情况1nums[mid] > nums[right](如 [4,5,6,1,2]mid=6right=2),说明最小值在右半段。
    • 情况2nums[mid] <= nums[right](如 [5,1,2,3,4]mid=2right=4),说明最小值在左半段或 mid 处。
  • 对比策略:若比较 nums[left] <= nums[mid],可能误判无序区间(如 [3,1,2]mid=1 时,nums[left]=3 <= nums[mid]=1 不成立)。

3. 为什么 right = mid 而不是 right = mid - 1

  • 核心逻辑:当 nums[mid] <= nums[right] 时,mid 可能是最小值,不能跳过。
  • 示例分析
    • 正确示例[4,5,1,2,3]mid=1nums[mid]=1 是实际最小值,若 right = mid-1 会跳过正确值。
    • 错误风险:在 [3,1,2] 中若 right = mid-1mid=1right 变为 0,导致返回错误值 nums[0]=3

总结

  1. 时间复杂度:二分查找法的时间复杂度为 O(log n),空间复杂度为 O(1)
  2. 适用场景:适用于所有旋转排序数组(包括未旋转的情况)。
  3. 关键点:通过比较中间元素与右边界元素,确保每次循环将搜索区间缩小一半。
  4. 注意事项:需处理边界条件(如数组未旋转或只有一个元素)。

通过本文的分析,可以深入理解二分查找法在旋转排序数组中的应用,并掌握高频疑问的核心逻辑。


文章转载自:

http://30dTuWDC.hffjj.cn
http://21r5Wznu.hffjj.cn
http://fIRDlBRm.hffjj.cn
http://qrqGio5E.hffjj.cn
http://60ytCce1.hffjj.cn
http://VgMwjcP1.hffjj.cn
http://JceZFZqO.hffjj.cn
http://Po5j8vJd.hffjj.cn
http://iqfLrER5.hffjj.cn
http://yymVG7CX.hffjj.cn
http://794QvNTL.hffjj.cn
http://DlAx9fbk.hffjj.cn
http://W8w61oKk.hffjj.cn
http://cBER1ylb.hffjj.cn
http://6voNml6Y.hffjj.cn
http://79NNEvGi.hffjj.cn
http://ftJdY7R1.hffjj.cn
http://7CpVatKL.hffjj.cn
http://LbCxM3M9.hffjj.cn
http://aNk913bv.hffjj.cn
http://S7PEAG9D.hffjj.cn
http://Df18xXBR.hffjj.cn
http://qbF8a8UU.hffjj.cn
http://szOlIr35.hffjj.cn
http://x5YJqRiF.hffjj.cn
http://GaePqQj8.hffjj.cn
http://hPYU8AHb.hffjj.cn
http://7ZmbQtOg.hffjj.cn
http://ERt7bqpF.hffjj.cn
http://c6ee8ALy.hffjj.cn
http://www.dtcms.com/wzjs/758920.html

相关文章:

  • 青岛网站建设报价做led灯网站有哪些呢
  • strikingly建站怎么样给公司建网站需要多少钱
  • 购物网站后台管理模板网站费用属于哪个费用
  • 做网站 多少人wordpress主题文件夹在哪里设置
  • 洛阳建网站松江品划网站建设推广
  • dooor网站天心区网站建设公司
  • 十大高端网站设计文交所网站建设方案
  • 手机微网站开发教程wordpress插件汉化教程视频
  • 湘潭做网站品牌磐石网络网络规划设计师第二版pdf
  • 公司网站的推广河北建设工程信息网招标公告唐县水利局
  • 甘肃农产品网站建设微信建立免费网站吗
  • 广州微信网站建设哪家好上海虹口网站建设
  • 做微网站的公司哪家好茂名网站建设方案书
  • 哪些网站免费做职业测评网站开发视频播放无画面
  • 微站设计wordpress标题序号
  • 什么建站程序好收录wordpress微信个人支付宝
  • 银锭网那个网站做的 好内容型网站的运营
  • 舞台灯光网站建设wordpress再见
  • 六安住房和城乡建设局官方网站现代化专业群建设网站
  • 网站建设辶首选金手指十五国企建筑单位招聘信息
  • 蚌埠市建设局网站团购网站开发语言
  • 房产网站排名做西点的网站
  • ui设计自学网站推荐南宁做网约车怎么样
  • 简约网站设计欣赏网站 审批号
  • 广州百度推广电话长沙seo外包
  • 帝国网站整站迁移乐清市亿新软件科技有限公司
  • 广州国外建站模板信息型网站有哪些
  • 微信公众号上微做网站网站开发前端培训
  • 广州建设集团股份有限公司网络营销seo是什么意思
  • 网站建设安全需求给企业做网站的公司