'''
第34天:移动数组
每日一题 夸克编程 今天
题目
给定一个数组,将数组中的元素向右移动 k 个位置,其中 k 是非负数,要求使用空间复杂度为 O(1) 的原地算法
例子
move_ele([1,2,3,4,5,6,7],3) -> [5,6,7,1,2,3,4]
假设
输入参数均合法
tips
将输入数组翻转两次
代码:
'''
# 不是原地移动
def move_ele2(lst, k):
print(id(lst))
lst = lst[-k:] + lst[:-k]
# lst[k:].reverse()
# print(lst)
# lst[:k].reverse()
print(id(lst))
return lst
def move_ele(lst, k):
if 0 < k:
k %= len(lst)
while k:
lst.insert(0, lst.pop(-1))
k -= 1
# pass
return lst
print(move_ele2([1,2,3,4,0,5,6,7],3))# -> [5,6,7,1,2,3,4]