189. 旋转数组

mac2026-02-20  10

题目 给定一个数组,将数组中的元素向右移动 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) # 注意k可能大于数组长度 swap(0, len(nums)-1, nums) swap(0, k-1, nums) swap(k, len(nums)-1, nums)
最新回复(0)