寻找旋转排序数组中的最小值Ⅱ
题目要求
解题思路
二分法
当遇到两个left、right两个位置值相同时候,可以选择将 right = right-1
代码
class Solution:def findMin(self, nums: List[int]) -> int:left,right=0,len(nums)-1while left<right:mid=(left+right)//2if nums[mid]>nums[right]: left = mid+1elif nums[mid]<nums[left]: right = midelse: right = right -1return nums[left]
复杂度分析
时间复杂度: O ( l o g N ) O(log N) O(logN)
空间复杂度: O ( 1 ) O(1) O(1)