搜索旋转排序数组

整数数组 nums 按升序排列,数组中的值 互不相同 。

在传递给函数之前,nums 在预先未知的某个下标 k(0 <= k < nums.length)上进行了 旋转,使数组变为 [nums[k], nums[k+1], …, nums[n-1], nums[0], nums[1], …, nums[k-1]](下标 从 0 开始 计数)。例如, [0,1,2,4,5,6,7] 在下标 3 处经旋转后可能变为 [4,5,6,7,0,1,2] 。

给你旋转后的数组 nums 和一个整数 target ,如果 nums 中存在这个目标值 target ,则返回它的下标,否则返回 -1 。

示例 1:

输入:nums = [4,5,6,7,0,1,2], target = 0
输出:4

示例 2:

输入:nums = [4,5,6,7,0,1,2], target = 3
输出:-1

以二分搜索为基本思路

可以发现的是,我们将数组从中间分开成左右两部分的时候,一定有一部分的数组是有序的。拿示例来看,我们从 6 这个位置分开以后数组变成了 [4, 5, 6,7] 和 [0, 1, 2] 两个部分,其中左边 [4, 5, 6,7] 这个部分的数组是有序的,其他也是如此。

这启示我们可以在常规二分查找的时候查看当前 m

二分法05:搜索旋转排序数组相关推荐

  1. LeetCode--81. 搜索旋转排序数组Ⅱ(遍历法,二分法)

    搜索旋转排序数组Ⅱ(C, Python) 1. 题目描述 2. 题目分析 3. C语言实现 3.1 遍历法 3.2 二分法 4. Python语言实现 1. 题目描述 难度:中等 2. 题目分析 这道 ...

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

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

  3. 《LeetCode力扣练习》第33题 搜索旋转排序数组 Java

    <LeetCode力扣练习>第33题 搜索旋转排序数组 Java 一.资源 题目: 整数数组 nums 按升序排列,数组中的值 互不相同 . 在传递给函数之前,nums 在预先未知的某个下 ...

  4. LeetCode 33. 搜索旋转排序数组 golang

    33. 搜索旋转排序数组 三个测试用例, 这个题的难度是二分法的左侧条件很难写出来. 4 5 6 0 1 2 3 1 2 3 4 5 6 0 5 1 2 3 4 ( 例如,数组 [0,1,2,4,5, ...

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

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

  6. LeetCode高频题33. 搜索旋转排序数组

    LeetCode高频题33. 搜索旋转排序数组 提示:本题是系列LeetCode的150道高频题,你未来遇到的互联网大厂的笔试和面试考题,基本都是从这上面改编而来的题目 互联网大厂们在公司养了一大批A ...

  7. python 搜索旋转排序数组

    | 搜索旋转排序数组 整数数组 nums 按升序排列,数组中的值 互不相同 .在传递给函数之前,nums 在预先未知的某个下标 k(0 <= k < nums.length)上进行了 旋转 ...

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

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

  9. 81. 搜索旋转排序数组 II

    81. 搜索旋转排序数组 II Ideas 这题,,,,对Python来说一点技术含量没有. 哈哈哈哈,开个玩笑,完美的避开了考点. Code Python class Solution:def se ...

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

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

最新文章

  1. 微信小程序的tab选项卡的实现
  2. javascript调试工具
  3. 两种思路将Python中两个有序数组合并为一个有序数组
  4. 第一行代码学习笔记第十章——探究服务
  5. 标签传播算法(Label Propagation)及Python实现
  6. Python 线程和进程和协程总结
  7. 使用 HTTP 缓存防止不必要的网络请求
  8. Java线程怎么发送消息_Java客户端Socket如何能在阻塞线程下收到服务端发送来的消息?...
  9. 线性代数:线性系统学习笔记
  10. Android Handler的内存泄露场景分析
  11. element tabs 添加事件_JavaScript-跨浏览器事件处理程序-Web前端教程
  12. Div层悬浮实现HTML5 Canvas背景动画
  13. id 和 class 选择器
  14. 学计算机用16g内存,说出去就是个笑话,两万多电脑内存才16G,我认为这配置不合理!...
  15. 李飞飞、吴恩达、Bengio等人的15大顶级深度学习课程(转)
  16. 现在买笔记本电脑要注意哪些方面? 哪些比较好?
  17. 计算机桌面没有打字,电脑输入法不见了怎么办
  18. 计算机网络——各层次网络互联设备
  19. 物联网 | HASS+MQTT+树莓派室内监测小型物联网系统
  20. python-比较两个文件交集、并集、差集

热门文章

  1. 《算法新解》读记(一)
  2. jQuery size()函数
  3. javascript中的cookie
  4. Sharepoint学习笔记--- 快速确定VisualStudio2010当前Project的assembly name
  5. gcc与g++编译器介绍
  6. 像进度条的网页加载Loading JS代码
  7. 初识dokuwiki
  8. 配置主机间信任的一个简单办法
  9. os.environ 和 keras.json
  10. MatchSum - 一种基于语义匹配的抽取式摘要框架