LC 速查

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]
← 上一题 搜索旋转排序数组寻找两个正序数组的中位数 下一题 →