Find Minimum in Rotated Sorted Array
LeetCode 154
class Solution:
def findMin(self, nums):
"""
此題為元素可以重複
:type nums: List[int]
:rtype: int
"""
i = 0
j = len(nums) - 1
while i < j:
mid = int((j+i)/2)
if nums[mid] > nums[j]:
i = mid + 1
else:
"""
[3, 3, 1, 3]
考慮這個例子
當 mid = 1 j = 3 的時候,
中間可能會夾雜小於3的數
所以不能直接 mid = j
"""
if nums[j] != nums[mid]:
j = mid
else:
j = j - 1
return nums[i]
Last updated