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

33.搜索旋转排序数组

​​题目来源:

        leetcode题目,网址:33. 搜索旋转排序数组 - 力扣(LeetCode)

解题思路:

       在二分查找时,分情况讨论即可。通过与第一个元素和最后一个元素的比较来获得 mid 处于第一个序列中还是第二个序列中。

解题代码:

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

总结:

        官方题解也是二分,不过他是先判断[l,mid] 和 [r,mid] 哪个有序,若不在有序的区间中,则在无序的区间中。


相关文章:

  • Certbot实现 HTTPS 免费证书(Let‘s Encrypt)自动续期
  • 【Linux】tree命令使用
  • 第七章 SpringCloud Alibaba 实现微服务集成Sentinel
  • Ubuntu22,桌面服务状态查看与重启
  • 2024黑龙江省职业院校技能大赛暨国赛选拔赛“GZ031应用软件系统开发”赛项赛题题库
  • 3.DevEco Studio安装鸿蒙手机app本地模拟器
  • 2019年AMC8数学竞赛真题的典型考点和详细解析
  • 后端项目全局异常处理-使用RuntimeException自定义异常异常分类简单举例
  • 详细教程 - 从零开发 Vue 鸿蒙harmonyOS应用 第三节 (封装TabBar JS版)
  • 基于以太坊的智能合约开发Solidity(事件日志篇)
  • Java8 IfPresent 与 forEach 的组合操作
  • Nacos配置管理-微服务配置拉取
  • Linux Conda 安装 Jupyter
  • Github仓库远程操作——简单版
  • C语言——const函数
  • 【笔记】你不知道的JS读书笔记——Promise
  • Mac 鼠须管 Rime 输入法 安装五笔输入法 教程
  • Python连接Oracle
  • 从@property说起(二)当我们写下@property (nonatomic, weak) id obj时,我们究竟写了什么...
  • 理解IaaS, PaaS, SaaS等云模型 (Cloud Models)
  • 理清楚Vue的结构
  • 目录与文件属性:编写ls
  • 前端js -- this指向总结。
  • 前端设计模式
  • 如何设计一个微型分布式架构?
  • 扫描识别控件Dynamic Web TWAIN v12.2发布,改进SSL证书
  • 在GitHub多个账号上使用不同的SSH的配置方法
  • 中国人寿如何基于容器搭建金融PaaS云平台
  • 资深实践篇 | 基于Kubernetes 1.61的Kubernetes Scheduler 调度详解 ...
  • ​Linux Ubuntu环境下使用docker构建spark运行环境(超级详细)
  • # 20155222 2016-2017-2 《Java程序设计》第5周学习总结
  • (11)MSP430F5529 定时器B
  • (超详细)语音信号处理之特征提取
  • (附源码)spring boot球鞋文化交流论坛 毕业设计 141436
  • (附源码)ssm考生评分系统 毕业设计 071114
  • (续)使用Django搭建一个完整的项目(Centos7+Nginx)
  • (转载)虚函数剖析
  • **PHP二维数组遍历时同时赋值
  • .net core 6 使用注解自动注入实例,无需构造注入 autowrite4net
  • .net core 实现redis分片_基于 Redis 的分布式任务调度框架 earth-frost
  • .NET Core6.0 MVC+layui+SqlSugar 简单增删改查
  • .NET 中各种混淆(Obfuscation)的含义、原理、实际效果和不同级别的差异(使用 SmartAssembly)
  • .net6+aspose.words导出word并转pdf
  • .net中我喜欢的两种验证码
  • ::什么意思
  • @SuppressLint(NewApi)和@TargetApi()的区别
  • [100天算法】-目标和(day 79)
  • [Android Studio] 开发Java 程序
  • [Android]How to use FFmpeg to decode Android f...
  • [bzoj 3124][sdoi 2013 省选] 直径
  • [C#]winform部署yolov9的onnx模型
  • [Java]深入剖析常见排序
  • [jobdu]不用加减乘除做加法
  • [MICROSAR Adaptive] --- autosar官方文档阅读建议
  • [python]python os模块 常用命令