题目描述

假设按照升序排序的数组在预先未知的某个点上进行了旋转。
( 例如,数组 [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. 搜索旋转排序数组(二分查找)相关推荐

  1. LeetCode--33. 搜索旋转排序数组(二分法)

    搜索旋转排序数组(C) 1. 题目描述 2. 题目分析 3. C语言实现 1. 题目描述 难度:中等 2. 题目分析 这道题我们需要关注的点有一下几个: 数组整体是升序的,并且数组中不存在重复的元素 ...

  2. Leetcode--33. 搜索旋转排序数组

    假设按照升序排序的数组在预先未知的某个点上进行了旋转. ( 例如,数组 [0,1,2,4,5,6,7] 可能变为 [4,5,6,7,0,1,2] ). 搜索一个给定的目标值,如果数组中存在这个目标值, ...

  3. LeetCode (二分小专题)33搜索旋转排序数组34在排序数组中查找元素的第一个和最后一个位置35搜索插入位置

    前言 国庆前最后一次打卡,国庆后继续开启,公众号bigsai回复进群欢迎加入打卡,如有帮助记得点赞收藏. 近期打卡记录: LeetCode 32最长有效括号(困难) (本周) LeetCode 30串 ...

  4. 20200217:搜索旋转排序数组(leetcode33)

    搜索旋转排序数组 题目 思路与算法 代码实现 题目 思路与算法 规律如下图,根据题目要求,必定是二分查找才能做到O(logN)的复杂度. 规律:mid > right,则[left,mid]有序 ...

  5. 【LeetCode33】搜索旋转排序数组

    假设按照升序排序的数组在预先未知的某个点上进行了旋转. ( 例如,数组 [0,1,2,4,5,6,7] 可能变为 [4,5,6,7,0,1,2] ). 搜索一个给定的目标值,如果数组中存在这个目标值, ...

  6. LeetCode—33. 搜索旋转排序数组

    33. 搜索旋转排序数组 题目描述:整数数组 nums 按升序排列,数组中的值 互不相同 . 在传递给函数之前,nums 在预先未知的某个下标 k(0 <= k < nums.length ...

  7. [Leedcode][JAVA][第33题][搜索旋转排序数组]

    [问题描述][33. 搜索旋转排序数组] [中等] 假设按照升序排序的数组在预先未知的某个点上进行了旋转.( 例如,数组 [0,1,2,4,5,6,7] 可能变为 [4,5,6,7,0,1,2] ). ...

  8. LeetCode.M33.搜索旋转排序数组

    LeetCode.M33 题目: 题目大意: ​ 将一个严格升序且没有重复元素的数组的后半部分(从k处开始)移动到前半部分,进过这个操作变成一个新的数组,然后在这个一个新的数组中查找某个元素targe ...

  9. ​LeetCode刷题实战81:搜索旋转排序数组 II

    算法的重要性,我就不多说了吧,想去大厂,就必须要经过基础知识和业务逻辑面试+算法面试.所以,为了提高大家的算法能力,这个公众号后续每天带大家做一道算法题,题目就从LeetCode上面选 ! 今天和大家 ...

最新文章

  1. css html span 块状不换行
  2. 嵌入式python 图形界面_有哪些好的嵌入式操作系统界面库(GUI library)?
  3. 毫末智行,现在是中国营收增速最快的无人车公司
  4. css之object-fit
  5. php jquery ajax裁剪图照片,php+jquery+ajax无刷新图片上传裁切,模拟flash头像上传实例...
  6. MongoDB复制选举原理及复制集管理
  7. 自增主键与UUID的优缺点
  8. windows快捷键大全(转载)
  9. NeatUpload的安装使用,可传大文件,显示进度条
  10. SQL 2008安装时反复提示重启和安装.net framework 3.5
  11. html 背景颜色设置为透明,css如何设置背景颜色透明?css设置背景颜色透明度的两种方法介绍...
  12. table 超级详细的 商品订单列表
  13. ATECC508A芯片开发笔记(九):加密读写508芯片数据的流程及相应设置
  14. CF1463-D. Pairs
  15. Efficient multi-keyword ranked query over encrypted data in cloud computing (6)
  16. 安装和配置PhysX
  17. synergy服务器未响应,请问synergy启动不了怎么回事???
  18. 网站建设(一)PHP深入学习
  19. 非阻塞赋值与阻塞赋值
  20. 企业在选择文件加密软件应注意哪些问题?

热门文章

  1. 一个数组去重的简单实现
  2. jsp mysql demo_echart通过jsp连接查询mysql的demo - 贪吃蛇学院-专业IT技术平台
  3. jax-ws 实现webservice
  4. c# 算式 计算器_C#实现的简单整数四则运算计算器功能示例
  5. Web Components 系列(八)—— 自定义组件的样式设置
  6. 【前端 · 面试 】HTTP 总结(二)—— HTTP 消息
  7. java使用itext开源包实现pdf文件合并,亲测可用,响应速度快的惊人
  8. Hibernate原生sqlquery报错:java.math.BigDecimal cannot be cast to java.lang.Int
  9. tar、tar.gz、tar.Z、tgz、bz2、bin软件包的安装
  10. windows删除文件c语言函数,c rename()函数是否删除文件?