153 Find Minimum in Rotated Sorted Array

这道题与033 Search in Rotated Sorted Array 基本思路一样, 也是比较最左边和中间的值的差别,唯一要注意的是 当a[left] < a[mid]的时候需要将a[left] 加入到右半部分一起考虑,因为有可能a[left] 就是最小值

class Solution:
    # @param {integer[]} nums
    # @return {integer}
    def findMin(self, nums):
        l = len(nums) - 1
        if l <= 1:
            return min(nums)
        mid = l / 2
        if nums[0] < nums[mid]:
            return self.findMin([nums[0]] + nums[mid+1:])
        else:
            return self.findMin(nums[1:mid+1])

 

posted @ 2015-07-09 12:22  dapanshe  阅读(85)  评论(0编辑  收藏  举报