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

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

          本题要求在旋转排序数组中寻找最小值。例如:

输入:nums = [3,4,5,1,2] 输出:1

        解题思路:通过比较二分值x与数组末尾元素nums.back()来判断x的位置:

  • 若x <= nums.back(),说明x位于第二段递增序列,此时x可能是最小值或在最小值右侧
  • 若x > nums.back(),说明x位于第一段递增序列,x必定在最小值左侧

        通过不断二分缩小范围,最终循环结束时指向的元素即为最小值,返回其下标即可。

class Solution {
public:int findMin(vector<int>& nums) {int left = -1,right = nums.size() - 1;while (left + 1 < right) {int mid = left + (right - left) / 2;if (nums[mid] < nums.back()) {right = mid;}else{left = mid;}}return nums[right];}
};

        时间复杂度:O(logn)

        空间复杂度:O(1)

http://www.xdnf.cn/news/9645.html

相关文章:

  • BeeWorks:构建企业智能数字化协作中枢,实现办公与业务系统的无缝整合
  • ansible-playbook 剧本
  • Python编程7——面向对象编程2
  • 华为OD机试真题——模拟工作队列(2025A卷:200分)Java/python/JavaScript/C/C++/GO最佳实现
  • 智能体通信协议之A2A和ANP对比分析
  • 【测试报告】博客系统
  • 学习python day10
  • 5.2.2二叉树的存储结构
  • 电脑软件管家 免安装便携 四十多种功能系统优化”“磁盘清理”“隐私保护
  • Windows中“无法成功完成操作,因为文件包含病毒或潜在的垃圾软件
  • 辛格迪客户案例 | 合规升级之路:辛格迪助力倍特药业迈向卓越
  • 面对 UI 差异化的调试难题:本地多设备测试中的 WebDebugX 应用实录
  • 【蓝桥杯嵌入式】【复盘】第15届省赛真题
  • Python学习(3) ----- Python的函数定义及其使用
  • OpenLayers 加载网格信息
  • [CISCN 2021初赛]glass
  • 【第2章 绘制】2.15 剪辑区
  • 【摄影教程】
  • 使用jessibuca+wvp+zlm实现html无插件播放摄像头实时画面
  • promise详细总结
  • VTK|Z轴拉伸功能的实现
  • 【Redis】通用命令
  • 使用Milvus运行一个Milvus单机版实例
  • 什么是 SRM、ERP、SCM,如何科学选型采购系统
  • 【Python】 -- 趣味代码 - 皮卡丘
  • 打造卓越客户支持体验:知识共享驱动服务优化
  • 利用openwrt路由器和随身WIFI搭建CPE
  • 世界模型:AGI突破口?一文了解NVIDIA Cosmos 平台
  • PyTorch 入门学习笔记
  • 【Python】 -- 趣味代码 - 数字游戏