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

[优选算法专题三.二分查找——NO.23搜索旋转排序数组中的最⼩值]

题目链接

153. 寻找旋转排序数组中的最小值

题目描述

题目解答

  • 时间复杂度:代码使用了二分查找算法,每次循环都会将搜索范围缩小一半,因此时间复杂度为 O (log n),其中 n 是数组 nums 的长度。
  • 空间复杂度:代码中只使用了 left、right、mid 和 x 等几个常量级别的变量,没有使用额外的与数组长度相关的空间,所以空间复杂度为 O (1)。

  • 功能:输入一个原本升序,在某个位置旋转后得到的整数数组nums,通过二分查找算法,返回数组中的最小值。
  • 代码逻辑
    • 初始化int left = 0, right = nums.size() - 1;定义了左右指针,分别指向数组的起始和末尾位置。int x = nums[right];获取数组的最后一个元素,用于后续比较。
    • 二分查找循环while (left < right)确保查找区间内至少有两个元素。循环内通过int mid = left + (right - left) / 2;计算中间位置,避免了left + right可能产生的整数溢出问题。
    • 判断与更新区间:如果nums[mid] > x,说明最小值在mid的右侧,因此将左指针left更新为mid + 1;否则,说明最小值在mid及其左侧,将右指针right更新为mid
    • 返回结果:当循环结束时,leftright会指向同一个位置,该位置即为最小值所在的位置,所以返回nums[left]

例如,对于数组[4, 5, 6, 7, 0, 1, 2],第一次二分mid指向6nums[mid]>x成立,left更新为mid+14;第二次二分mid指向0nums[mid]>x不成立,right更新为mid4;此时leftright相等,循环结束,返回nums[left],也就是0,成功找到最小值。

http://www.dtcms.com/a/438103.html

相关文章:

  • 【个人修养】商务礼仪教程
  • 报告派研读:2025年全球PC/主机游戏洞察报告
  • 用jquery做的书籍网站discuz做服务网站
  • Linux 驱动开发入门:LCD 驱动与内核机制详解
  • [Linux基础——Lesson9.调试器GDB]
  • 网站 推送中国万网域名官网
  • 主窗口(QMainWindow)如何放入文本编辑器(QPlainTextEdit)等继承自QWidget的对象--(重构版)
  • 和 AI 一起修 Bug 心得体会
  • 网站建设科技公司外部环境分析网站首页没有权重
  • 【大语言模型】—— Transformer的QKV及多头注意力机制图解解析
  • SYN VISION韩国发布会:获评非小号Alpha,战略合作PrompTale
  • 安徽工程建设造价信息网站html网站开发视频
  • 图书馆自习室|基于SSM的图书馆自习室座位预约小程序设计与实现(源码+数据库+文档)
  • Ollama 使用详解:本地部署大语言模型的指南
  • 手机上哪个网站浙江省嘉兴市建设局网站
  • 秒杀系统崩溃?Redis分片+Sentinel熔断架构设计指南
  • 【开题答辩全过程】以 J2EE技术在在线购物分享应用中的应用为例,包含答辩的问题和答案
  • 【深入理解计算机网络03】计算机网络的分层结构,OSI模型与TCP/IP模型
  • 网站怎么做移动的窗口达州市建设规划网站
  • #计算 c^d mod n
  • AI与现代数据科学的融合
  • Kaggle医学影像识别(二)
  • 第8篇|特殊环境下的设计挑战:把“风机体质”重塑成“台风型、抗寒型、M型与 Class S 定制款”
  • 别让AI成为“技术债加速器”:敏捷设计习惯如何约束智能开发
  • [论文阅读] AI+软件工程 | AI供应链信任革命:TAIBOM如何破解AI系统“可信难题“
  • 【论文阅读】-《Sparse and Imperceivable Adversarial Attacks》
  • SNN论文阅读——In the Blink of an Eye: Event-based Emotion Recognition
  • 焦作做网站最专业的公司访问wordpress时失败
  • K8s学习笔记(十二) volume存储卷
  • 十分钟搭建thinkphp开发框架