在这里插入图片描述

思路1

直接return min(nums)即可。

class Solution:
    def findMin(self, nums: List[int]) -> int:
        return min(nums)

思路2

初始设定左右指针 left 和 right,循环条件为 left < right,每次取中点 middle。如果中点值大于右端值,说明最小值一定在右半部分,左指针移动到 middle + 1;否则说明最小值可能在左半部分甚至是 middle 本身,因此右指针移动到 middle。循环结束时,left == right,即为最小值所在的位置。

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

Logo

开源鸿蒙跨平台开发社区汇聚开发者与厂商,共建“一次开发,多端部署”的开源生态,致力于降低跨端开发门槛,推动万物智联创新。

更多推荐