题目 给定一个数组,将数组中的元素向右移动 k 个位置,其中 k 是非负数。
考研题,先全部翻转,再反转前k个,再反转后面的
def rotate(self
, nums
: List
[int], k
: int) -> None:
"""
Do not return anything, modify nums in-place instead.
"""
def swap(i
, j
, nums
):
t
= 0
while i
< j
:
t
= nums
[j
]
nums
[j
] = nums
[i
]
nums
[i
] = t
i
+= 1
j
-= 1
if len(nums
) <= 1: return
k
= k
% len(nums
)
swap
(0, len(nums
)-1, nums
)
swap
(0, k
-1, nums
)
swap
(k
, len(nums
)-1, nums
)
转载请注明原文地址: https://mac.8miu.com/read-511554.html