leetcode153-- Find minimum in Rotated Sorted Array

leetcode153-- Find minimum in Rotated Sorted Array

题目

即在leetcode33的问题里面找到最小的值,

实际上这时候只需要在右边重的时候更新右端点即可,其他的情况只用更新左端点即可,那么while结束的时候的start和 end对应的两个数中的最小值就是整个的最小值,另外一个应该是这里面的最大值。

class Solution(object):
    def findMin(self, nums):
        """
        :type nums: List[int]
        :rtype: int
        """
        if len(nums) == 0:
            return -1
        
        start, end = 0, len(nums)-1
        
        while(start+1<end):  ##当长度为2的时候,不会走这个,所以还要再结尾加上判断
            # 只要是右边重,就更新右端点[8901234567]
            mid = start + (end-start)/2
            if nums[mid]<nums[end]:
                end = mid
            else:
                start = mid
                
        # 最后这两个数里面最小的那个就是最小值,另外一个应该是最大值
        if nums[start]<nums[end]:
            return nums[start]
        else:
            return nums[end]
        

打赏,谢谢~~

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,多谢支持~

打开微信扫一扫,即可进行扫码打赏哦