题解 | #旋转数组的最小数字#
旋转数组的最小数字
https://www.nowcoder.com/practice/9f3231a991af4f55b95579b44b7a01ba
# # 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 # # # @param nums int整型一维数组 # @return int整型 # class Solution: def minNumberInRotateArray(self , nums: List[int]) -> int: # write code here # 解法一:使用min函数 # return min(nums) # 解法二:排序升序,然后取第一个 # nums.sort() # return nums[0] # 解法三:使用二分查找 left,right=0,len(nums)-1 while left<right: mid=(left+right)//2 # 最小数据在mid右边 if nums[mid]>nums[right]: left=mid+1 # 无法判断,一个个尝试 elif nums[mid]==nums[right]: right=right-1 # 最小数据在mid或者mid左边 else: right=mid return nums[left]