Leetcode 153. Find Minimum in Rotated Sorted Array

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u013596119/article/details/84774691

Suppose an array sorted in ascending order is rotated at some pivot unknown to you beforehand.

(i.e.,  [0,1,2,4,5,6,7] might become  [4,5,6,7,0,1,2]).

Find the minimum element.

You may assume no duplicate exists in the array.

Example 1:

Input: [3,4,5,1,2] 
Output: 1

Example 2:

Input: [4,5,6,7,0,1,2]
Output: 0

Answer:

class Solution(object):
    def binary(self,nums,start,end):
        if end-start<=1:
            return min(nums[start],nums[end])
        
        mid=(start+end)/2
        if nums[mid]>nums[end]:
            return self.binary(nums,mid+1,end)
        if nums[mid]<nums[end]:
            if nums[mid]<nums[mid-1]:
                return nums[mid]
            return self.binary(nums,start,mid)
    def findMin(self, nums):
        """
        :type nums: List[int]
        :rtype: int
        """
        l=len(nums)
        
        start=0
        end=l-1
        return self.binary(nums,start,end)
        
            

binary search

猜你喜欢

转载自blog.csdn.net/u013596119/article/details/84774691
今日推荐