演算法題 旋轉陣列

2021-08-07 03:09:38 字數 1016 閱讀 6602

題目:把乙個陣列最開始的若干個元素搬到陣列的末尾,我們稱之為陣列的旋轉。輸入乙個排序的陣列的乙個旋轉(遞增或遞減的),輸出旋轉陣列的最小元素。例如陣列為的乙個旋轉,該陣列的最小值為1。

"""把乙個陣列最開始的若干個元素搬到陣列的末尾,我們稱之為陣列的旋轉。

輸入乙個排序的陣列的乙個旋轉(遞增或遞減的),輸出旋轉陣列的最小元素。

例如陣列為的乙個旋轉,該陣列的最小值為1。

"""def

rotate_arr

(a):

left = 0

right = len(a)-1

mid = (left+right)/2

if a[right] - a[left] !=1

and a[right] - a[left] != -1:

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)/2

if a[left] < a[middle]:

left = middle

elif a[left] > a[middle]:

right = middle

elif a[left] == a[middle] and right-left == 1:

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([1,2,3,4,5,6,7]))

1 初級演算法題 旋轉陣列

題目 給定乙個陣列,將陣列中的元素向右移動n個位置,其中n是非負數。輸入 1,2,3,4,5,6,7 和n 3 輸出 5,6,7,1,2,3,4 向右旋轉1步 7,1,2,3,4,5,6 向右旋轉2步 6,7,1,2,3,4,5 向右旋轉3步 5,6,7,1,2,3,4 假設,給定陣列 8,7,6,...

演算法 旋轉陣列

給定乙個陣列,將陣列中的元素向右移動 k 個位置,其中 k 是非負數。示例 1 輸入 1,2,3,4,5,6,7 和 k 3 輸出 5,6,7,1,2,3,4 解釋 向右旋轉 1 步 7,1,2,3,4,5,6 向右旋轉 2 步 6,7,1,2,3,4,5 向右旋轉 3 步 5,6,7,1,2,3,...

演算法 旋轉陣列

給定乙個陣列,將陣列中的元素向右移動 k 個位置,其中 k 是非負數。示例 1 輸入 1,2,3,4,5,6,7 和 k 3 輸出 5,6,7,1,2,3,4 解釋 向右旋轉 1 步 7,1,2,3,4,5,6 向右旋轉 2 步 6,7,1,2,3,4,5 向右旋轉 3 步 5,6,7,1,2,3,...