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

力扣刷题Day 72:寻找旋转排序数组中的最小值(153)

1.题目描述

2.思路

方法1(自己想的):原地用分治的方法找到前一个元素比后一个元素大的索引,直接输出。

方法2(对灵茶山艾府佬的二分法做了一点改动):不停二分,判断nums[mid]与nums末尾元素的大小关系,如果nums[mid] < nums[-1],那么分割点separate一定在[left, mid - 1]上,否则分割点separate就在[mid + 1, right]上。

3.代码(Python3)

方法1:

class Solution:def findMin(self, nums: List[int]) -> int:def search_separate(left, right):if left > right: return 0mid = (left + right) // 2if mid == len(nums) - 1: return 0if nums[mid] > nums[mid + 1]: return mid + 1separate = search_separate(left, mid - 1)if separate == 0: separate = search_separate(mid + 1, right)return separatereturn nums[search_separate(0, len(nums) - 1)]

方法2:

class Solution:def findMin(self, nums: List[int]) -> int:left, right = 0, len(nums) - 1while left <= right:mid = (left + right) // 2if nums[mid] < nums[-1]: right = mid - 1elif nums[mid] > nums[-1]: left = mid + 1else: breakreturn nums[left]

4.执行情况

方法1:

方法2:

5.感想

二分解题好丝滑。

相关文章:

  • 车型库查询接口如何用Java进行调用?
  • coze平台创建智能体,关于智能体后端接入的问题
  • 永磁同步电机无速度算法--基于卡尔曼滤波器的滑模观测器
  • 添加按钮跳转页面并且根据网站的用户状态判断是否显示按钮
  • 贝叶斯网络_TomatoSCI分析日记
  • leetcode1971. 寻找图中是否存在路径-easy
  • SQL进阶之旅 Day 17:大数据量查询优化策略
  • 传统业务对接AI-AI编程框架-Rasa的业务应用实战(4)--Rasa成型可用 针对业务配置rasa并训练和部署
  • 蓝牙攻防实战指南:发现隐藏设备
  • 数据库管理与高可用-MySQL主从复制与读写分离
  • linux 内存分析
  • Python绘图库及图像类型之特殊领域可视化
  • Git 切换到旧提交,同时保证当前修改不丢失
  • Qt客户端技巧 -- 窗口美化 -- 窗口阴影
  • Truffle 和 Ganache 使用指南
  • 龙石数据中台V3.5.1升级 | 数据实时收集来了!
  • 使用VuePress2.X构建个人知识博客,并且用个人域名部署到GitHub Pages中
  • 从入门到进阶:Python 学习参考书的深度解析
  • 全面理解 Linux 内核性能问题:分类、实战与调优策略
  • MySQL基本操作
  • 宜昌网站建设厂家/网络营销师是做什么的
  • 日本 男女做受网站/长沙建站seo公司
  • 广州开发网站建设/营销推广网站推广方案
  • 做网站要会没软件/广告投放怎么做
  • 做网站的论文摘要/网络营销品牌推广
  • 广州网站优化关键词方法/深圳网络营销怎么推广