给定一个整数数组
nums,将数组中的元素向右轮转k个位置,其中k是非负数。
由题目可知,k为非负数一定需要右转,而且当K=数组长度时,其实数组是不变的。
三步反转法,步骤 1:整体全反转、步骤 2:反转前 k 个、步骤3:反转后面剩下所有元素
class Solution: def rotate(self, nums: List[int], k: int) -> None: """ Do not return anything, modify nums in-place instead. """ length = len(nums) k %= length def reverse(l, r): while l < r: nums[l], nums[r] = nums[r], nums[l] l += 1 r -= 1 reverse(0, length - 1) reverse(0, k - 1) reverse(k, length - 1)