LeetCode33. 搜索旋转排序数组(二分查找)
题目描述
假设按照升序排序的数组在预先未知的某个点上进行了旋转。
( 例如,数组 [0,1,2,4,5,6,7] 可能变为 [4,5,6,7,0,1,2] )。
搜索一个给定的目标值,如果数组中存在这个目标值,则返回它的索引,否则返回 -1 。
你可以假设数组中不存在重复的元素。
你的算法时间复杂度必须是 O(log n) 级别。
思路
详见链接
代码
class Solution:def search(self, nums:List[int], target:int)->int:n = len(nums)if n == 0:return -1left = 0right = n - 1while left < right:mid = left + (right - left) // 2if nums[mid] == target:return midelif nums[left] < nums[mid]:if nums[left] <= target < nums[right]:right = mid -1else:left = mid + 1else:if nums[mid] < target <= nums[right]:left = mid + 1else:right = mid - 1return left if nums[left] == target else -1
LeetCode33. 搜索旋转排序数组(二分查找)相关推荐
- LeetCode--33. 搜索旋转排序数组(二分法)
搜索旋转排序数组(C) 1. 题目描述 2. 题目分析 3. C语言实现 1. 题目描述 难度:中等 2. 题目分析 这道题我们需要关注的点有一下几个: 数组整体是升序的,并且数组中不存在重复的元素 ...
- Leetcode--33. 搜索旋转排序数组
假设按照升序排序的数组在预先未知的某个点上进行了旋转. ( 例如,数组 [0,1,2,4,5,6,7] 可能变为 [4,5,6,7,0,1,2] ). 搜索一个给定的目标值,如果数组中存在这个目标值, ...
- LeetCode (二分小专题)33搜索旋转排序数组34在排序数组中查找元素的第一个和最后一个位置35搜索插入位置
前言 国庆前最后一次打卡,国庆后继续开启,公众号bigsai回复进群欢迎加入打卡,如有帮助记得点赞收藏. 近期打卡记录: LeetCode 32最长有效括号(困难) (本周) LeetCode 30串 ...
- 20200217:搜索旋转排序数组(leetcode33)
搜索旋转排序数组 题目 思路与算法 代码实现 题目 思路与算法 规律如下图,根据题目要求,必定是二分查找才能做到O(logN)的复杂度. 规律:mid > right,则[left,mid]有序 ...
- 【LeetCode33】搜索旋转排序数组
假设按照升序排序的数组在预先未知的某个点上进行了旋转. ( 例如,数组 [0,1,2,4,5,6,7] 可能变为 [4,5,6,7,0,1,2] ). 搜索一个给定的目标值,如果数组中存在这个目标值, ...
- LeetCode—33. 搜索旋转排序数组
33. 搜索旋转排序数组 题目描述:整数数组 nums 按升序排列,数组中的值 互不相同 . 在传递给函数之前,nums 在预先未知的某个下标 k(0 <= k < nums.length ...
- [Leedcode][JAVA][第33题][搜索旋转排序数组]
[问题描述][33. 搜索旋转排序数组] [中等] 假设按照升序排序的数组在预先未知的某个点上进行了旋转.( 例如,数组 [0,1,2,4,5,6,7] 可能变为 [4,5,6,7,0,1,2] ). ...
- LeetCode.M33.搜索旋转排序数组
LeetCode.M33 题目: 题目大意: 将一个严格升序且没有重复元素的数组的后半部分(从k处开始)移动到前半部分,进过这个操作变成一个新的数组,然后在这个一个新的数组中查找某个元素targe ...
- LeetCode刷题实战81:搜索旋转排序数组 II
算法的重要性,我就不多说了吧,想去大厂,就必须要经过基础知识和业务逻辑面试+算法面试.所以,为了提高大家的算法能力,这个公众号后续每天带大家做一道算法题,题目就从LeetCode上面选 ! 今天和大家 ...
最新文章
- css html span 块状不换行
- 嵌入式python 图形界面_有哪些好的嵌入式操作系统界面库(GUI library)?
- 毫末智行,现在是中国营收增速最快的无人车公司
- css之object-fit
- php jquery ajax裁剪图照片,php+jquery+ajax无刷新图片上传裁切,模拟flash头像上传实例...
- MongoDB复制选举原理及复制集管理
- 自增主键与UUID的优缺点
- windows快捷键大全(转载)
- NeatUpload的安装使用,可传大文件,显示进度条
- SQL 2008安装时反复提示重启和安装.net framework 3.5
- html 背景颜色设置为透明,css如何设置背景颜色透明?css设置背景颜色透明度的两种方法介绍...
- table 超级详细的 商品订单列表
- ATECC508A芯片开发笔记(九):加密读写508芯片数据的流程及相应设置
- CF1463-D. Pairs
- Efficient multi-keyword ranked query over encrypted data in cloud computing (6)
- 安装和配置PhysX
- synergy服务器未响应,请问synergy启动不了怎么回事???
- 网站建设(一)PHP深入学习
- 非阻塞赋值与阻塞赋值
- 企业在选择文件加密软件应注意哪些问题?
热门文章
- 一个数组去重的简单实现
- jsp mysql demo_echart通过jsp连接查询mysql的demo - 贪吃蛇学院-专业IT技术平台
- jax-ws 实现webservice
- c# 算式 计算器_C#实现的简单整数四则运算计算器功能示例
- Web Components 系列(八)—— 自定义组件的样式设置
- 【前端 · 面试 】HTTP 总结(二)—— HTTP 消息
- java使用itext开源包实现pdf文件合并,亲测可用,响应速度快的惊人
- Hibernate原生sqlquery报错:java.math.BigDecimal cannot be cast to java.lang.Int
- tar、tar.gz、tar.Z、tgz、bz2、bin软件包的安装
- windows删除文件c语言函数,c rename()函数是否删除文件?