class Solution:
def minArray(self,lst):
lst.sort()
return lst[0]
a=Solution()
numbers = [3,4,5,1,2]
print(a.minArray(numbers))
numbers1 = [2,2,2,0,1]
print(a.minArray(numbers1))
下面博主的二分法
面试题11. 旋转数组的最小数字(二分法,清晰图解) - 旋转数组的最小数字 - 力扣(LeetCode)https://leetcode.cn/problems/xuan-zhuan-shu-zu-de-zui-xiao-shu-zi-lcof/solution/mian-shi-ti-11-xuan-zhuan-shu-zu-de-zui-xiao-shu-3/ 排序数组的查找问题首先考虑使用 二分法 解决,其可将 遍历法 的 线性级别 时间复杂度降低至 对数级别 。
class Solution:
def minArray(self, lst):
i,j=0,len(lst)-1
while i<j:
m=(i+j)//2#i<=m<j
if lst[m]<lst[j]:
j=m
elif lst[m]>lst[j]:
i=m+1
else:
j-=1
return lst[i]
a=Solution()
numbers = [3,4,5,1,2]
print(a.minArray(numbers))
numbers1 = [2,2,2,0,1]
print(a.minArray(numbers1))