题目
实现思路
和153不同的地方在于,这个题目中的数字是有重复的。
实现代码
class Solution(object):
def findMin(self, nums):
"""
:type nums: List[int]
:rtype: int
"""
# 判断是否有旋转
if len(nums) == 1 or nums[0] < nums[-1]:
return nums[0]
start,end = 0,len(nums)-1
while start+1 < end:
mid = start + (end - start) // 2
if nums[mid] == nums[end]:
end -= 1
elif nums[mid] < nums[end]:
end = mid
else:
start = mid
return min(nums[start],nums[end])