题目
分析
分为三种情况
如果 mid>r,最小值一定在mid右边
如果 mid ==r,最小值在 mid和r之间 r= mid -1
如果 mid <r,最小值有可能是mid或者mid左边 r = mid
python代码
class Solution:
def minNumberInRotateArray(self, rotateArray):
# write code here
l = 0
r = len(rotateArray)-1
while l<r:
mid = (l+r)>>1
if rotateArray[mid]>rotateArray[r]:
l = l+1
elif rotateArray[mid]==rotateArray[r]:
r = mid-1
else:
r = mid
return rotateArray[r]