天天看點

算法題/旋轉數組python2.7

python2.7

題目:把一個數組最開始的若幹個元素搬到數組的末尾,我們稱之為數組的旋轉。輸入一個排序的數組的一個旋轉(遞增或遞減的),輸出旋轉數組的最小元素。例如數組{3,4,5,1,2}為{1,2,3,4,5}的一個旋轉,該數組的最小值為1。

算法題/旋轉數組python2.7
#coding:utf-8
"""
把一個數組最開始的若幹個元素搬到數組的末尾,我們稱之為數組的旋轉。
輸入一個排序的數組的一個旋轉(遞增或遞減的),輸出旋轉數組的最小元素。
例如數組{3,4,5,1,2}為{1,2,3,4,5}的一個旋轉,該數組的最小值為1。
"""
def rotate_arr(a):
    left = 
    right = len(a)-
    mid = (left+right)/
    if a[right] - a[left] != and a[right] - a[left] != -:
        return a[left]
    if a[left] == a[mid] or a[left] == a[right] or a[right] == a[mid]:
        return min(a)
    while left < right:
        middle = (left+right)/
        if a[left] < a[middle]:
            left = middle
        elif a[left] > a[middle]:
            right = middle
        elif a[left] == a[middle] and right-left == :
            return a[right]         

#print(rotate_arr([0,1,1,1,0,0]))
#print(rotate_arr([3,4,5,6,7,1,2]))
print(rotate_arr([,,,,,,]))
           
算法題/旋轉數組python2.7