链接: 原文链接.
class Solution: # 自己写的一种查找方法 # def minArray(self, numbers: List[int]) -> int: # # 遍历,如果遇到比之前都小的值就直接返回。 # for i in range(len(numbers)-1): # if numbers[i+1] < numbers[i]: # return numbers[i+1] # else: # pass # # 如果没有遇到,那只有两种情况:列表本来就是正序的 # # 或者是列表只有一个值。 # # 以上两种情况的返回值直接就是列表的第一个值 # return numbers[0] # 大佬写的方法,二分法查找 # 稍微改动一下之前的就可以 # def minArray(self, numbers: [int]) -> int: # i, j = 0, len(numbers) - 1 # while i < j: # m = (i + j) // 2 # if numbers[m] > numbers[j]: i = m + 1 # elif numbers[m] < numbers[j]: j = m # else: j -= 1 # return numbers[i]