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

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

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

题目链接:https://leetcode.cn/problems/find-minimum-in-rotated-sorted-array/description/?envType=study-plan-v2&envId=top-100-liked

我的解答:

public int findMin(int[] nums) { return check(nums, 0, nums.length - 1); } public int check(int[] nums, int l, int r){ while(l <= r){ int mid = l + ((r - l) >> 1); if(mid + 1 < nums.length && nums[mid] > nums[mid + 1]){ return nums[mid + 1]; } else if(mid - 1 >= 0 && nums[mid] < nums[mid - 1]){ return nums[mid]; } else{ return Math.min(check(nums, l, mid - 1), check(nums, mid + 1, r)); } } return r >= 0 ? nums[r] : nums[l]; }

分析:代码的时间复杂度为O(n),空间复杂度为O(logn)。自己未能想出时间复杂度为O(logn)的解法。解题思路:二分查找+递归,虽然是二分查找,但是没有根据旋转排序数组的特点进行剪枝,每一个元素都被访问了一遍,让时间复杂度到达了O(n),因此不推荐此方法。

看了官方题解后的解答:

//方法:二分查找 //时间复杂度:O(logn) //空间复杂度:O(1) public int findMin(int[] nums) { int l = 0, r = nums.length - 1; while(l < r){ int mid = l + ((r - l) >> 1); if(nums[mid] < nums[r]){ r = mid; } else{ l = mid + 1; } } return nums[r]; }

分析:

​ 1、解题思路,利用旋转排序数组的特点进行剪枝。

​ 2、旋转排序数组的特点:一个不包含重复元素的升序数组在经过旋转之后,可以得到下面可视化的折线图:

​ 3、[l,r]维护最小值可能出现的范围,初始时l = 0, r = nums.length-1,每次将中间位置的元素与右边界的元素作比较,若nums[mid] < nums[r],说明nums[mid]是最小值或最小值右侧的元素,因此我们可以忽略二分查找区间的右半部分,让r = mid;若nums[mid] > nums[r],说明nums[mid]是最小值左侧的元素,因此我们可以忽略二分查找区间的左半部分,让l = mid +1。

总结

  • 本题主要需要结合“一个不包含重复元素的升序数组在经过旋转之后所有数据值的大小的分布特点”来进行剪枝,从而实现O(n)的时间复杂度解题。
http://www.zskr.cn/news/1425963.html

相关文章:

  • 决策树算法全解析:从ID3到CART,构建可解释机器学习模型
  • @Transactional 最佳实践
  • 从 mumu-cli 到 mumu-control,MuMu 已经不是普通模拟器了
  • 曲靖市黄金回收白银回收门店推荐 2026年最新黄金回收门店口碑排行榜+联系方式 - 盛世金银回收
  • 如何5分钟快速上手RVC语音克隆:零基础AI音色转换终极指南
  • 工业HMI如何直连海康摄像头?IPStream控件轻松实现RTSP取流
  • 衢州市黄金回收白银回收门店推荐 2026年最新黄金回收门店口碑排行榜+联系方式 - 盛世金银回收
  • 阿里云亮出 Agent 基础设施全景图,ANOLISA 要做每一个 Agent 的运行底座
  • 从推理规划到持续学习:三大技术驱动聊天机器人向智能体进化
  • iOS微信自动抢红包插件:3步实现毫秒级智能抢收方案
  • 你好,新朋友——这是我的第一篇文章
  • 仁怀市黄金回收白银回收门店推荐 2026年最新黄金回收门店口碑排行榜+联系方式 - 盛世金银回收
  • 2005-2025年全国民航机场客货吞吐量和起降架次数据
  • 工作流重构技能的社会影响
  • 让旧款Mac重获新生:OpenCore Legacy Patcher免费升级macOS完整指南
  • Keil MDK升级后RTX内核链接错误解决方案
  • 绵竹市黄金回收白银回收门店推荐 2026年最新黄金回收门店口碑排行榜+联系方式 - 盛世金银回收
  • GPT5.5长文档检索增强分块策略与重排序实战全拆解
  • 对话式AI训练数据实战:从NLU、ASR到数据采集与标注
  • 避坑指南:在GEE中正确使用GFCC30TC树冠覆盖数据集(含最新2021.4版信息)
  • 荣成市黄金回收白银回收门店推荐 2026年最新黄金回收门店口碑排行榜+联系方式 - 盛世金银回收
  • 2026年六盘水市最新黄金回收靠谱门店口碑榜 黄金+K金+白银+铂金回收门店TOP5排行榜+联系方式 - 大熊猫898989
  • 从零构建一个LVGL嵌入式UI:用GridNav实现纯按键交互的完整流程(附多语言切换)
  • 【2026毕设救急】计算机毕业设计论文怎么写?深度解析系统设计、代码降重与 AIGC 绕过技巧
  • IBuilder.cs 接口
  • 攀枝花市黄金回收白银回收门店推荐 2026年最新黄金回收门店口碑排行榜+联系方式 - 盛世金银回收
  • 2026年开原市最新黄金回收靠谱门店口碑榜 黄金+K金+白银+铂金回收门店TOP5排行榜+联系方式 - 大熊猫898989
  • 盘锦市黄金回收白银回收门店推荐 2026年最新黄金回收门店口碑排行榜+联系方式 - 盛世金银回收
  • 2026年开远市最新黄金回收靠谱门店口碑榜 黄金+K金+白银+铂金回收门店TOP5排行榜+联系方式 - 大熊猫898989
  • 乳山市黄金回收白银回收门店推荐 2026年最新黄金回收门店口碑排行榜+联系方式 - 盛世金银回收