题目描述

假设按照升序排序的数组在预先未知的某个点上进行了旋转。
( 例如,数组 [0,0,1,2,2,5,6] 可能变为 [2,5,6,0,0,1,2] )。
编写一个函数来判断给定的目标值是否存在于数组中。若存在返回 true,否则返回 false。

思路

详见链接

代码

class Solution:def search(self, nums:List[int], target:int)->bool:n = len(nums)if n == 0:return Falseleft = 0right = n - 1while left <= right:mid = left + (right - left)//2   #此写法防止溢出,mid = (left +right) / 2 这种写法可能会溢出。 (注: mid = left + (right - left) / 2 和 mid = (left +right) / 2 这两种写法是一个意思,不过前一种写法更保险一点)if nums[mid] == target:return Trueif nums[left] == nums[target] == nums[right]:left += 1right += 1elif 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 False

LeetCode81. 搜索旋转排序数组 II(二分查找)相关推荐

  1. leetcode 81. 搜索旋转排序数组 II(二分查找)

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

  2. 59. Leetcode 81. 搜索旋转排序数组 II(二分查找-局部有序)

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

  3. 搜索旋转排序数组(JAVA 二分查找)

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

  4. LeetCode 33. 搜索旋转排序数组(二分查找)

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

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

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

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

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

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

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

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

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

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

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

最新文章

  1. ORACLE基础学习-RMAN应用之(归档模式无备份,丢失数据文件的恢复)
  2. 降维打击:这款GAN可以让真人「二次元化」
  3. c++11 多线程传参和生产者消费者实现
  4. 【linux】CMake Error in CMakeLists.txt: No CMAKE_CXX_COMPILER could be found.
  5. springbootSecurity的使用
  6. linux进程被杀掉日志,Linux进程突然被杀掉(OOM killer),查看系统日志
  7. 2013二级计算机c语言50,2013年计算机二级C语言课后模拟题五及答案
  8. 用nodejs 调试nginx rewrite 后输出路径
  9. 终面后拿offer几率_战绩 | 恭喜VIP学员斩获德勤(北京)风险分析师全职Offer!...
  10. 固定td 样式 随 内容 溢出
  11. 为底层元素注册监听器
  12. DRF的@action装饰器
  13. lstm数学推导_ICML 2019 | 神经网络的可解释性,从经验主义到数学建模
  14. mvc表单Form提交 --实体
  15. 5G NR CSI Report中的codebook/PMI
  16. python获取图像灰度极值点_【图像处理】灰度图、亮度峰值极值查找
  17. 记录win10无法通过IE浏览器设置受信任的站点的几种方法
  18. cer证书的命令导入
  19. matplotlib绘图:散点图、折线图、柱状图、水平条形图、饼图和直方图
  20. csgo跑图文件_一键跑图!极为方便的CSGO跑图工具(附2020年5月28日更新)

热门文章

  1. 解决Win10中WerFault错误报告问题
  2. 转: android编译过程(流程图)
  3. mysql配合memcache部署_Docker多容器配合实现开发环境(nginx、php、memcached、mysql)...
  4. C#中使用GUID的笔记
  5. OpenCart如何添加货币
  6. 工具库用久了,你还会原生操作 Cookie 吗?
  7. ORACLE数据库定时任务自动停止(broken)的原因分析及解决办法
  8. java处理pdf文件——iText的使用
  9. android:scaletype=quot;fitxyquot;,Android ImageView的ScaleType属性
  10. java 二进制是什么类型_Java基础类型与其二进制表示