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

力扣刷题Day 71:搜索旋转排序数组(33)

1.题目描述

2.思路

首先用分治法找到数组前半段和后半段的衔接处separate,若target刚好在nums[: separate]或nums[separate + 1 :]里则在对应区间里二分查找target,否则直接返回-1。

3.代码(Python3)

方法1:

class Solution:def search(self, nums: List[int], target: int) -> int:def search_separate(left, right):if left > right: return -1elif left == right and nums[left] == target: return leftmid = (left + right) // 2if mid + 1 == len(nums): return -1if nums[mid] > nums[mid + 1]: return midseparate = search_separate(left, mid - 1)if separate == -1: separate = search_separate(mid + 1, right)return separateseparate = search_separate(0, len(nums) - 1)print(separate)if separate == -1: separate = len(nums) - 1 # nums没有旋转的情况elif nums[separate] == target: return separateelif target < nums[separate + 1] or target > nums[separate]: return -1left, right = 0, separateif separate != len(nums) - 1 and target <= nums[-1]: left, right = separate + 1, len(nums) - 1while left <= right:mid = (left + right) // 2if nums[mid] == target: return midelif nums[mid] > target: right = mid - 1else: left = mid + 1return -1

4.执行情况

方法1:

5.感想

我写的方法虽然执行效果还可以,但代码可读性极差,是在一次一次通不过测试用例的过程中不断修补的,所以看起来非常东拼西凑,差评!但是今天没有耐心再看大佬的题解了,就这样吧。

http://www.xdnf.cn/news/890371.html

相关文章:

  • dvwa13——CSP Bypass
  • ubuntu 端口复用
  • Ubantu-Docker配置最新镜像源250605
  • PHP 打印扩展开发:从易联云到小鹅通的多驱动集成实践
  • 打造高效多模态RAG系统:原理与评测方法详解
  • Cad 反应器 cad c#二次开发
  • 【复杂指令遵循 Benchmark】论文分享:CodeIF-Bench
  • 软件开发中的“需求镀金”现象如何避免?
  • 大屏缩放视频比例适配记录
  • Canvas的使用
  • 计算机网络安全问答数据集(1788条) ,AI智能体知识库收集! AI大模型训练数据!
  • AI04A AI模块,16通道,TC / mV
  • Python中的self参数介绍
  • [GESP202412 五级] 奇妙数字 题解
  • 核心机制:延时应答,捎带应答,面向字节流
  • Shopify 主题开发:移动端菜单响应式设计要点
  • jdbc查询mysql数据库时,出现id顺序错误的情况
  • Android基础回顾】六:安卓显示机制Surface 、 SurfaceFlinger、Choreographer
  • 机器学习——XGBoost
  • 【Emgu CV教程】11.2、Canny边缘检测
  • 【计组】真题 2015 大题
  • ModuleNotFoundError No module named ‘torch_geometric‘未找到
  • windows VeraCrypt – 磁盘加密工具
  • Python实例题:Python计算二元二次方程组
  • Life:Internship finding
  • RMSE可以融合均值与标准差
  • 核货宝订货平台源码:构建高效智能订货系统,驱动企业数字化转型
  • Nature Methods | OmiCLIP:整合组织病理学与空间转录组学的AI模型
  • win32相关(远程线程和远程线程注入)
  • React 第五十四节 Router中useRevalidator的使用详解及案例分析