[6]はパイソンを達成するために、アレイの回転の最小数を安全オファーを証明します

タイトル説明

いくつかの要素の配列の先頭には、配列、我々は回転呼んで配列の最後に移動しました。
出力回転最小の素子アレイの回転の入力配列の非降順。
例えば、配列{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]
公開された99元の記事 ウォンの賞賛6 ビュー3995

おすすめ

転載: blog.csdn.net/weixin_42247922/article/details/103915946