输入一个有序列表[1,2,3,4,5,6,7],再输入一个数字如3,旋转为[5,6,7,1,2,3,4],空间复杂度为O(1)

1.代码题:Python输入一个有序数组[1,2,3,4,5,6,7],再输入一个数字如3,旋转为[5,6,7,1,2,3,4],空间复杂度为O(1),不使用切片

阅读 5.3k
3 个回答

楼上操作可以,但是使用了切片。

array  = [1,2,3,4,5,6,7]
num    = 3
def func(dataList, num):
    for i in range(num):
        tmp = dataList.pop()
        dataList.insert(0, tmp)
    return dataList
print(func(array, num))

python3

>>> a = [1,2,3,4,5,6,7]
>>> for i in range(3):
    a.insert(0,a.pop())

    
>>> a
[5, 6, 7, 1, 2, 3, 4]

1、那叫列表
2、a = [1,2,3,4,5,6,7]
a[-3:] + a[:-3]
[5, 6, 7, 1, 2, 3, 4]

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题