当前位置: 首页 > news >正文

【LeetCode】33.搜索旋转排序数组

1. 题目

在这里插入图片描述

2. 分析

说实话,这道题挺难想的。难点在于,数组非完全有序就会让人产生错觉(这道题无法二分)。如果不是题目要求O(logn)的复杂度,那我觉得我肯定不会想到。可以这么分析:
对于一个旋转排序数组,其长相如下:
在这里插入图片描述

二分切割后,一定满足:至少有一半儿是有序的。基于这个性质,可以得到下面这个代码。

3. 代码

class Solution:def search(self, nums: List[int], target: int) -> int:left = 0right = len(nums) - 1while(left <= right):mid = (left + right) // 2if nums[left] <= nums[mid]: # 左区间完全有序if nums[mid] == target:return midif nums[left] <= target < nums[mid]:right = mid-1else:left = mid+1elif nums[mid] <= nums[right]: # 右区间if nums[mid] == target:return midif nums[mid] < target <= nums[right]:left = mid + 1else:right = mid - 1return -1

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • Vue学习(三)条件渲染、列表渲染
  • Linux--shell脚本语言—/—<1>
  • 【C++学习第19天】最小生成树(对应无向图)
  • 数据分析_01_Python基础
  • 【C++】一堆数组案例 元素逆置
  • 自定义线程池(二)
  • 【带你入门生信】什么是生物信息学
  • [Linux安全运维] Nginx安装部署以及LNMP框架搭建保姆级教程
  • 基于微信小程序的微课堂笔记的设计与实现(源码+论文+部署讲解等)
  • C语言--函数
  • 【dijkstra】迪杰斯特拉算法 洛谷 P1828例题代码讲解
  • C++与云计算的融合:构建高效、可扩展的云服务
  • 逻辑推理之lora微调
  • 2024/8/3 英语每日一段
  • 数据结构与算法 - 堆
  • Android优雅地处理按钮重复点击
  • js面向对象
  • leetcode98. Validate Binary Search Tree
  • Map集合、散列表、红黑树介绍
  • vue-router的history模式发布配置
  • 从0到1:PostCSS 插件开发最佳实践
  • 分享几个不错的工具
  • - 概述 - 《设计模式(极简c++版)》
  • 人脸识别最新开发经验demo
  • 原生js练习题---第五课
  • 怎么将电脑中的声音录制成WAV格式
  • scrapy中间件源码分析及常用中间件大全
  • ​补​充​经​纬​恒​润​一​面​
  • ​二进制运算符:(与运算)、|(或运算)、~(取反运算)、^(异或运算)、位移运算符​
  • # Java NIO(一)FileChannel
  • # Redis 入门到精通(七)-- redis 删除策略
  • (6) 深入探索Python-Pandas库的核心数据结构:DataFrame全面解析
  • (delphi11最新学习资料) Object Pascal 学习笔记---第8章第5节(封闭类和Final方法)
  • (pojstep1.1.2)2654(直叙式模拟)
  • (安全基本功)磁盘MBR,分区表,活动分区,引导扇区。。。详解与区别
  • (考研湖科大教书匠计算机网络)第一章概述-第五节1:计算机网络体系结构之分层思想和举例
  • (牛客腾讯思维编程题)编码编码分组打印下标(java 版本+ C版本)
  • (十一)c52学习之旅-动态数码管
  • (算法)Game
  • (一)Kafka 安全之使用 SASL 进行身份验证 —— JAAS 配置、SASL 配置
  • (一)VirtualBox安装增强功能
  • (转载)OpenStack Hacker养成指南
  • *++p:p先自+,然后*p,最终为3 ++*p:先*p,即arr[0]=1,然后再++,最终为2 *p++:值为arr[0],即1,该语句执行完毕后,p指向arr[1]
  • .mp4格式的视频为何不能通过video标签在chrome浏览器中播放?
  • .NET C# 操作Neo4j图数据库
  • .net core webapi 部署iis_一键部署VS插件:让.NET开发者更幸福
  • .NET MVC 验证码
  • .NET WebClient 类下载部分文件会错误?可能是解压缩的锅
  • .NET 回调、接口回调、 委托
  • .NET/C# 如何获取当前进程的 CPU 和内存占用?如何获取全局 CPU 和内存占用?
  • .NET开源项目介绍及资源推荐:数据持久层
  • .NET框架
  • .NET性能优化(文摘)
  • .Net转Java自学之路—SpringMVC框架篇六(异常处理)
  • @Bean, @Component, @Configuration简析