153. 寻找旋转排序数组中的最小值 题目描述 解题思路
还是二分查找 在常规二分查找中 序列有序 在此题中分段有序。如果以中点为分割点 一定有一半是有序的 据此可以判断最小值点的区间。
代码实现class Solution: def findMin(self, nums: List[int]) - int: low, high 0, len(nums) - 1 while low high: mid low (high - low) // 2 if nums[high] nums[mid]: # [high, mid]是连续递增区间 最小值不可能在此区间 high mid else: # nums[high] nums[mid]时 最小值一定在[mid 1, high]区间 # 不能是low mid 会陷入死循环 low mid 1 return nums[low]参考文献
一文解决 4 道「搜索旋转排序数组」题



