python 搜索旋转排序数组
| 搜索旋转排序数组
整数数组 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 搜索旋转排序数组相关推荐
- python旋转排序数组_LeetCode(力扣)——Search in Rotated Sorted Array 搜索旋转排序数组 python实现...
题目描述: python实现Search in Rotated Sorted Array 搜索旋转排序数组 中文:假设按照升序排序的数组在预先未知的某个点上进行了旋转. ( 例如,数组 [0,1,2, ...
- 81. 搜索旋转排序数组 II
81. 搜索旋转排序数组 II Ideas 这题,,,,对Python来说一点技术含量没有. 哈哈哈哈,开个玩笑,完美的避开了考点. Code Python class Solution:def se ...
- LeetCode--81. 搜索旋转排序数组Ⅱ(遍历法,二分法)
搜索旋转排序数组Ⅱ(C, Python) 1. 题目描述 2. 题目分析 3. C语言实现 3.1 遍历法 3.2 二分法 4. Python语言实现 1. 题目描述 难度:中等 2. 题目分析 这道 ...
- 《LeetCode力扣练习》第33题 搜索旋转排序数组 Java
<LeetCode力扣练习>第33题 搜索旋转排序数组 Java 一.资源 题目: 整数数组 nums 按升序排列,数组中的值 互不相同 . 在传递给函数之前,nums 在预先未知的某个下 ...
- LeetCode (二分小专题)33搜索旋转排序数组34在排序数组中查找元素的第一个和最后一个位置35搜索插入位置
前言 国庆前最后一次打卡,国庆后继续开启,公众号bigsai回复进群欢迎加入打卡,如有帮助记得点赞收藏. 近期打卡记录: LeetCode 32最长有效括号(困难) (本周) LeetCode 30串 ...
- LeetCode—33. 搜索旋转排序数组
33. 搜索旋转排序数组 题目描述:整数数组 nums 按升序排列,数组中的值 互不相同 . 在传递给函数之前,nums 在预先未知的某个下标 k(0 <= k < nums.length ...
- 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, ...
- LeetCode(81): 搜索旋转排序数组 II
Medium! 题目描述: 假设按照升序排序的数组在预先未知的某个点上进行了旋转. ( 例如,数组 [0,0,1,2,2,5,6] 可能变为 [2,5,6,0,0,1,2] ). 编写一个函数来判断给 ...
- [Leedcode][JAVA][第33题][搜索旋转排序数组]
[问题描述][33. 搜索旋转排序数组] [中等] 假设按照升序排序的数组在预先未知的某个点上进行了旋转.( 例如,数组 [0,1,2,4,5,6,7] 可能变为 [4,5,6,7,0,1,2] ). ...
最新文章
- Python并发编程实例教程
- Websphere: security-constraint in web.xml doesn't
- 重新精读《Java 编程思想》系列之组合与继承
- 洛谷 - P1198 - 最大数 - 线段树
- 十三、“词短情长书不尽,桃花潭水是我心。”(2021.2.12)
- 对MariaDB10.0的Sphinx进行扩展
- 一套完整的基于随机森林的机器学习流程(特征选择、交叉验证、模型评估))...
- 中国计算机学会CCF招聘-信息系统项目管理/技术支持
- 中内连和外联的去区别_外联福利 || 卡西欧计算器
- python获取月份字符串_Python时间获取及转换知识汇总
- 计算机无法识别1136打印机,惠普HP M1136打印机驱动安装失败的多种解决办法
- 平面设计是做什么的?平面设计工作内容有哪些?
- 还不清楚如何编辑图片上的文字的话,就看看这篇文章吧
- DataFun活动回顾 | 画像在外卖智能调度的实践-详细版
- 花了10分钟,终于明白矩阵的逆到底有什么用
- 让图片填满Word表格里的单元格
- springboot停车场车辆定位管理可视化分析系统 毕业设计-附源码101702
- pytorch distribute all_reduce方法实验
- onegreen的绿软word2003绿色版删除不掉的解决方案
- 给予奉贤区科技小巨人企业扶持额度40万元
热门文章
- [Solved] UnicodeDecodeError: ‘utf-8’ codec can’t decode byte 0xff in position 0: invalid start byte
- 【转载】Few-shot learning(少样本学习)和 Meta-learning(元学习)概述
- html调试和js脚本调试
- conda下用prefix创建虚拟环境会怎么样?
- 深度学习核心技术精讲100篇(六十)-深度学习分类算法之神经网络
- 成为指标的“绝地武士”:tableau创建指标的 10 个技巧和窍门
- Tableau必知必会之如何快速制作 词云(文字云)
- 机器学习算法与Python实践之(三)支持向量机(SVM)进阶
- 新手入门深度学习 | 卷积神经网络是什么?
- 谈谈对搜索技术Elastic SearchLucene的理解