所有Leetcode题目不定期汇总在 Github, 欢迎大家批评指正,讨论交流。
class Solution:
def findMin(self, nums):
"""
:type nums: List[int]
:rtype: int
"""
# method one
# return min(nums)
# method two 二分法难点,在于左右节点和中间结点一样的时候,不知道最小值的区间
left , right = 0 , len(nums)-1
while left < right:
mid = left + (right - left) // 2
if nums[mid] == nums[right]: # 关键的去重,不能每次舍弃一半的元素,而只能逐个筛选
right -= 1
elif nums[mid] < nums[right]:
right = mid
else:
left = mid + 1
return nums[left]
所有Leetcode题目不定期汇总在 Github, 欢迎大家批评指正,讨论交流。