| 搜索旋转排序数组

整数数组 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
示例 3:输入:nums = [1], target = 0
输出:-1提示:1 <= nums.length <= 5000
-10^4 <= nums[i] <= 10^4
nums 中的每个值都 独一无二
题目数据保证 nums 在预先未知的某个下标上进行了旋转
-10^4 <= target <= 10^4

题解

class Solution:def search(self, nums: List[int], target: int) -> int:length = len(nums)first = 0last = length - 1while last >= first:mid = first + (last-first)//2if nums[mid] == target:return mid# 找出有序区间,如果满足num[first] <= num[mid],则证明 mid索引的左侧元素是有序的if nums[first] <= nums[mid]:# 当 num[mid] 落在左有序区间if nums[first] <= target < nums[mid]:last= mid - 1else:first = mid + 1# 否则,证明 mid 索引的右侧元素的有序的else:# 当 num[mid] 落在右有序区间if nums[mid] < target <=nums[last]:first = mid + 1else:last = mid - 1 return -1

python 搜索旋转排序数组相关推荐

  1. python旋转排序数组_LeetCode(力扣)——Search in Rotated Sorted Array 搜索旋转排序数组 python实现...

    题目描述: python实现Search in Rotated Sorted Array 搜索旋转排序数组 中文:假设按照升序排序的数组在预先未知的某个点上进行了旋转. ( 例如,数组 [0,1,2, ...

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

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

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

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

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

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

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

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

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

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

  7. 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, ...

  8. LeetCode(81): 搜索旋转排序数组 II

    Medium! 题目描述: 假设按照升序排序的数组在预先未知的某个点上进行了旋转. ( 例如,数组 [0,0,1,2,2,5,6] 可能变为 [2,5,6,0,0,1,2] ). 编写一个函数来判断给 ...

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

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

最新文章

  1. Python并发编程实例教程
  2. Websphere: security-constraint in web.xml doesn't
  3. 重新精读《Java 编程思想》系列之组合与继承
  4. 洛谷 - P1198 - 最大数 - 线段树
  5. 十三、“词短情长书不尽,桃花潭水是我心。”(2021.2.12)
  6. 对MariaDB10.0的Sphinx进行扩展
  7. 一套完整的基于随机森林的机器学习流程(特征选择、交叉验证、模型评估))...
  8. 中国计算机学会CCF招聘-信息系统项目管理/技术支持
  9. 中内连和外联的去区别_外联福利 || 卡西欧计算器
  10. python获取月份字符串_Python时间获取及转换知识汇总
  11. 计算机无法识别1136打印机,惠普HP M1136打印机驱动安装失败的多种解决办法
  12. 平面设计是做什么的?平面设计工作内容有哪些?
  13. 还不清楚如何编辑图片上的文字的话,就看看这篇文章吧
  14. DataFun活动回顾 | 画像在外卖智能调度的实践-详细版
  15. 花了10分钟,终于明白矩阵的逆到底有什么用
  16. 让图片填满Word表格里的单元格
  17. springboot停车场车辆定位管理可视化分析系统 毕业设计-附源码101702
  18. pytorch distribute all_reduce方法实验
  19. onegreen的绿软word2003绿色版删除不掉的解决方案
  20. 给予奉贤区科技小巨人企业扶持额度40万元

热门文章

  1. [Solved] UnicodeDecodeError: ‘utf-8’ codec can’t decode byte 0xff in position 0: invalid start byte
  2. 【转载】Few-shot learning(少样本学习)和 Meta-learning(元学习)概述
  3. html调试和js脚本调试
  4. conda下用prefix创建虚拟环境会怎么样?
  5. 深度学习核心技术精讲100篇(六十)-深度学习分类算法之神经网络
  6. 成为指标的“绝地武士”:tableau创建指标的 10 个技巧和窍门
  7. Tableau必知必会之如何快速制作 词云(文字云)
  8. 机器学习算法与Python实践之(三)支持向量机(SVM)进阶
  9. 新手入门深度学习 | 卷积神经网络是什么?
  10. 谈谈对搜索技术Elastic SearchLucene的理解