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

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

1.题目描述

2.思路

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

3.代码(Python3)

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.执行情况

5.感想

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

http://www.dtcms.com/a/233690.html

相关文章:

  • Win10、Win11系统,使用谷歌浏览器文件流下载,C盘剩余容量小于4GB时,下载失败问题
  • 我的创作纪念日——聊聊我想成为一个创作者的动机
  • 25.6.5学习总结
  • 风机下引线断点检测算法实现
  • 系统思考持续训练
  • 【Redis】笔记|第10节|京东HotKey实现多级缓存架构
  • 简化复杂系统的优雅之道:深入解析 Java 外观模式
  • AI大模型在测试领域应用案例拆解:AI赋能的软件测试效能跃迁的四大核心引擎(顺丰科技)
  • Q: 数据库增删改查的逻辑如何实现?
  • 软件测试基础知识总结
  • 08_10小结
  • 八:操作系统设备管理之磁盘调度算法
  • 前端面试题之浏览器存储技术Cookie、LocalStorage、SessionStorage、indexDB
  • [蓝桥杯]后缀表达式
  • Scrum基础知识以及Scrum和传统瀑布式开发的区别
  • STL优先级队列的比较函数与大堆小堆的关系
  • I.MX6ULL裸机的EPIT实验
  • 贪心,回溯,动态规划
  • 从零发布一个 Vue 3 Button 组件到 npm(基于 Vite)
  • 更改安卓虚拟机屏幕大小
  • 计算机基础知识(第四篇)
  • 2025年上海市“星光计划”第十一届职业院校技能大赛 网络安全赛项技能操作模块样题
  • 农田水利如何「聪明」起来?Modbus转Ethernet IP破解设备互联
  • 洛谷题目:P2761 软件补丁问题 (本题简单)
  • linux下覆盖率测试总结
  • App使用webview套壳引入h5(二)—— app内访问h5,顶部被手机顶部菜单遮挡问题,保留顶部安全距离
  • 从Copilot到Agent,AI Coding是如何进化的?
  • [特殊字符] 一文了解目前主流的 Cursor AI 免费续杯工具!
  • 使用logrotate切割nginx日志
  • NX985NX988美光固态闪存NY103NY106