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

33.搜索旋转排序数组力扣

nums数组虽然在旋转过后仍然是有序的,我们可以用二分。我们把数组看成两部分,第一部分始终单调递增而且其中每一个元素一定比第二段大。而第二部分也是单调递增不过其最大值也比第一部分的最小值小。

根据上述条件可以得到:第一部分的第一个元素可以用来判断元素所在第一部分还是第二部分

mid指针可能在第一部分也可能在第二部分,因此第一个判断条件就是用nums[mid]比较和nums[left]的大小来判断当前mid的位置。

得到mid所指向元素的下标的位置后就是用mid不断靠近目标值了,用一个嵌套循环即可,具体代码如下:

class Solution { public: int search(vector<int>& nums, int target) { int n = nums.size(); int left = 0,right = n-1; while(left <= right){ int mid = (left + right)/2; if(nums[mid] == target){ return mid; } if(nums[left] <= nums[mid]){//一定要有等于,不然会算到第二部分去 if(nums[left] <= target && nums[mid] > target){//这里包含了一种隐藏情况就是当猜的mid在第一部分而target在第二部分那么就会小于nums[left]从而知道target在右边 right = mid - 1;//目标值在左边right进行逼近 } else{ left = mid+1;//目标值在右边right进行逼近 } } else{ if(nums[mid] < target && target <= nums[right]){//(情况反的时候也同理见第12行) left = mid+1; } else{ right = mid - 1; } } } return -1; } };
http://www.jsqmd.com/news/906056/

相关文章:

  • 2026南宁卫生间免砸砖防水、外墙、地下室、楼顶渗漏+彩钢瓦、阳光房渗漏 本地专业防水公司TOP5权威推荐(2026年6月本地最新深度调研) - 防水百科
  • 普通人如何用 AI Agent 赚钱
  • PCB板厂提供的叠层资料怎么看?
  • 2026茂名卫生间免砸砖防水、外墙、地下室、楼顶渗漏+彩钢瓦、阳光房渗漏 本地专业防水公司TOP5权威推荐(2026年6月本地最新深度调研) - 防水百科
  • 直播APP开发必备功能盘点:美颜SDK、连麦互动与实时音视频技术
  • AI基建“算力饥渴”:Token成争夺焦点,四大势力涌入市场
  • 青海携途国际旅行社官方发布:青海携途国际旅行社联系电话、联系方式、怎么联系 - 寻茫精选
  • Spring Bean作用域以及生命周期
  • 2026年东莞磁环供应厂家实力评估:电源磁环、数据线磁环、充电桩磁环、工控磁环行业格局分析 - 品牌企业推荐师(官方)
  • 2026衡阳卫生间免砸砖防水、外墙、地下室、楼顶渗漏+彩钢瓦、阳光房渗漏 本地专业防水公司TOP5权威推荐(2026年6月本地最新深度调研) - 防水百科
  • 从设备树到驱动代码:在RK3566上点亮一个LED的完整实战流程(基于GPIO0_B4)
  • 深入理解Java核心:从对象比较到内存机制
  • 【YOLO目标检测全栈实战】91 知识蒸馏的工程化落地:从论文到生产环境的最后一公里
  • 13802黄大年茶思屋第138期(基础软件领域第三期)第2题:数据库内存池自适应管理技术
  • 2026昆明卫生间免砸砖防水、外墙、地下室、楼顶渗漏+彩钢瓦、阳光房渗漏 本地专业防水公司TOP5权威推荐(2026年6月本地最新深度调研) - 防水百科
  • 装配式篷房源头厂家哪家好
  • 从零实现 Python 代码审查工具:安全生命周期漏洞检测实战
  • GEO 智能营销系统落地实战与价值转化指南
  • 2026鄂州卫生间免砸砖防水、外墙、地下室、楼顶渗漏+彩钢瓦、阳光房渗漏 本地专业防水公司TOP5权威推荐(2026年6月本地最新深度调研) - 防水百科
  • 使用GD32实现JTAG功能
  • pnpm的安装和配置
  • 2026济南卫生间免砸砖防水、外墙、地下室、楼顶渗漏+彩钢瓦、阳光房渗漏 本地专业防水公司TOP5权威推荐(2026年6月本地最新深度调研) - 防水百科
  • solie实线 多段线 不显示填充
  • 20260528 2
  • 项目经理日常:我是怎么把高项十大管理47个过程,用到真实项目里的(附避坑指南)
  • 一个导出按钮,为什么最后会变成后台任务系统?
  • 2026 南京地区 GEO 服务商选择指南:五大优质机构技术与案例深度对比 - GEO优化
  • Gemini个性化推荐策略全链路拆解(从Embedding到实时重排的12个关键决策点)
  • 从Solidworks草图到桌面摆件:我如何用3D打印给自己做了个PLA手机支架(附切片避坑指南)
  • 4步搞定Ryzen系统调试:SMUDebugTool新手完全指南