有序数组
-
剑指 Offer 11. 旋转数组的最小数字 简单
解法:二分判断可能无序的情况(右边),如果顺序,最小点在m处r=m;如果乱序,最小点在[m+1,r]l=m+1;相等的时候,不确定状况,从右边下来保守。时间O(logn)空间O(1)l, r =0,len(numbers)-1 while l<r: m = (l+r)//2 if numbers[m]<numbers[r]: r=m elif numbers[m]>numbers[r]: l=m+1 else: r-=1 return numbers[l]