HOT 100 › 索引 › B11 二分查找 Binary Search
LC 153寻找旋转排序数组中的最小值Find Minimum in Rotated Sorted Array 中等
在元素互异、经过一次旋转的升序数组中找出最小值,要求 O(log n)。
思路 二分与右端点比较:nums[mid]<nums[right] 说明最小在左半(含 mid),否则在右半(mid 之后)。
class Solution: def findMin(self, nums: List[int]) -> int: left, right = 0, len(nums) - 1 while left < right: mid = (left + right) // 2 if nums[mid] < nums[right]: right = mid else: left = mid + 1 return nums[left]