您的位置:首页 > 其它

Leetcode #154 Find Minimum in Rotated Sorted Array II

2015-09-04 03:00 295 查看
Follow up for "Find Minimum in Rotated Sorted Array":

What if duplicates are allowed?
Would this affect the run-time complexity? How and why?

Suppose a sorted array 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.

The array may contain duplicates.

Difficulty:Hard

class Solution(object):
def findMin(self, nums):
"""
:type nums: List[int]
:rtype: int
"""
leng = len(nums)
if leng == 1:
return nums[0]
start = 0
end = leng - 1
flag = 0
while end>=start:
if end-start==1:
if(nums[end]>=nums[start]):
if(nums[start]<nums[flag]):
return nums[start]
else:
return nums[flag]
else:
if(nums[end]<nums[flag]):
return nums[end]
else:
return nums[flag]
mid = start + (end-start)/2
if nums[mid]<nums[start]:
end = mid
elif nums[mid]==nums[start]:
start+=1
else:
if(nums[start]<nums[flag]):
flag = start
start = mid
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: