旋转数组的最小数字 python
旋转数组的最小数字 python
class Solution(object):
def minArray(self, numbers):
"""
:type numbers: List[int]
:rtype: int
"""
if not numbers:
return None
def MinInOrder(numbers,index1,index2):
res =numbers[index1]
for i in range(index1+1,index2+1):
if res>numbers[i]:
res = numbers[i]
return res
index1 = 0
index2 = len(numbers)-1
indexMid = index1
while(numbers[index1]>=numbers[index2]):
if index2-index1 == 1:
indexMid = index2
break
indexMid = (index1 + index2) / 2
if numbers[index1] == numbers[index2] and numbers[indexMid] == numbers[index1]:
return MinInOrder(numbers,index1,index2)
if numbers[indexMid]>=numbers[index1]:
index1 = indexMid
else:
index2 = indexMid
return numbers[indexMid]