gpt4 book ai didi

python - 阵列左旋转

转载 作者:太空狗 更新时间:2023-10-30 00:47:31 26 4
gpt4 key购买 nike

我有一个问题,我需要将数组向左旋转 k 次。

即如果 k = 2, [1, 2, 3, 4, 5] 。 -> [3, 4, 5, 1, 2]

所以,我的代码是:

def array_left_rotation(a, n, k):
for i in range(n):
t = a[i]
a[i] = a[(i+n-1+k)%n]
a[(i+n-1+k)%n] = t

return a

其中 n = 数组的长度。

我认为问题是映射问题,a[0] -> a[n-1] if k = 1。

我的解决方案有什么问题?

最佳答案

另一种借助索引来实现这一点的方法如下所示。

def rotate(l, n):
return l[n:] + l[:n]

print(rotate([1, 2, 3, 4, 5], 2))

#output : [3, 4, 5, 1, 2]

只有当 n 超出范围 [-len(l), len(l)] 时,才会返回原始列表。要使其适用于 n 的所有值,请使用:

def rotate(l, n):
return l[-n % len(l):] + l[:-n % len(l)]

关于python - 阵列左旋转,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49462195/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com