📜  Python – 列表中的后移 K(1)

📅  最后修改于: 2023-12-03 15:19:04.817000             🧑  作者: Mango

Python - 列表中的后移 K

在开发过程中,经常遇到需要向列表中插入元素并将其移动到指定位置的情况。在这种情况下,我们可以使用 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 中的后两个元素向右移动。