二分法求解,尽管不是有序数组,但是因为可以确定该数组由两部分的有序数组组成,所以还是可以用二分法,只是稍微考虑的要多一点
# 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
#
#
# @param rotateArray int整型一维数组
# @return int整型
#
class Solution:
def minNumberInRotateArray(self , rotateArray: List[int]) -> int:
left = 0
right = len(rotateArray)-1
while left < right:
mid = (left+right)//2
if rotateArray[mid] > rotateArray[right]:
left = mid + 1
elif rotateArray[mid] < rotateArray[right]:
right = mid
else:
right -= 1
return rotateArray[left]
# write code here