📅  最后修改于: 2023-12-03 15:19:04.817000             🧑  作者: Mango
在开发过程中,经常遇到需要向列表中插入元素并将其移动到指定位置的情况。在这种情况下,我们可以使用 Python 的列表。
在列表中,后移 K 个元素,可以使用以下方法:
def rotate_list(lst, k):
"""
:param lst: List[int]
:param k: int
:return: List[int]
"""
# 如果k大于列表长度,则实际移动的距离是k%len(lst)
k %= len(lst)
# 将前半部分反转
lst[:k] = reversed(lst[:k])
# 将后半部分反转
lst[k:] = reversed(lst[k:])
# 反转整个列表
lst.reverse()
return lst
该函数将列表分为两个部分,一个是前 K 个元素,另一个是后面的元素。然后将前面的部分反转,再将后面的部分反转。最后,将整个列表反转即可。
该方法的时间复杂度为 O(n),因为它对列表进行了三次反转操作,其中每个操作的时间复杂度都是 O(n)。
下面是实际使用该函数的示例代码:
lst = [1, 2, 3, 4, 5]
k = 2
print(rotate_list(lst, k)) # [4, 5, 1, 2, 3]
在该示例中,列表 lst 中的后两个元素向右移动。