左旋转k个k大于数组长度的单元格



如果给定数组的长度是6,k的值是7,那么结果数组应该是这样的[20,30,40,50,60,10]。我的工作。

source = [10, 20, 30, 40, 50, 60]
def rotateLeft(array, k):
tempArray = [0] * len(array)
flag = k
j = len(array)
temp = k - len(array) - 1
temp2 = len(array) - 1
for i in range(j):
tempArray[i] = source[i]
if i + k < j:
source[i] = source[i + k]
source[flag] = tempArray[i]
flag += 1
//Before this everything is alright.
elif k > len(array):
while temp2 >= temp:
source[temp2] = source[temp2 - temp]
temp2 -= 1
print(source)

rotateLeft(source, 7)

输出为[10,20,30,40,50,60]。预期[20,30,40,50,60,10]。有人能帮忙吗? !谢谢你。

如何使用模数除法

k=k%len(array)

这将使k成为数组需要移动的位置数。因为在此操作之后0 <= k 来移动数组

array = array[k:] + array [:k]

相关内容

最新更新