题目
这个相比于之前的那一个中有可能会有重复的。所以这时候需要把右边的减一,注意不是左边的加,因为这时候求的是最小值。
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):
mid = start +(end - start)/2
if nums[mid]<nums[end]:
end = mid
elif nums[mid]>nums[end]:
start = mid
else:
end -= 1
if nums[start]<nums[end]:
return nums[start]
else:
return nums[end]





近期评论