タイトル説明
いくつかの要素の配列の先頭には、配列、我々は回転呼んで配列の最後に移動しました。
出力回転最小の素子アレイの回転の入力配列の非降順。
例えば、配列{3,4,5,1,2}、{1,2,3,4,5}は最小のアレイの回転です。
注:配列のサイズは、リターン0 0である場合、すべての要素は、0よりも大きいに記載されています。
バイナリ検索
class Solution:
def minNumberInRotateArray(self, rotateArray):
# write code here
length = len(rotateArray)
if length == 0:
return 0
elif length == 1:
return rotateArray[0]
else:
left = 0
right = length - 1
mid = 0
while rotateArray[left] >= rotateArray[right]:
if right - left == 1:
mid = right
break
mid = left + (right - left) // 2
if rotateArray[mid] >= rotateArray[left]:
left = mid
if rotateArray[mid] <= rotateArray[right]:
right = mid
return rotateArray[mid]