Menu
CoddyTech

Rotate Array

给你一个整数数组 nums 和一个数字 k。将数组向右旋转 k 步:每一步中,每个值都向右移动一位,最后一个值会绕回到最前面。返回旋转后的数组。

k 可能远大于数组的长度。

函数

rotate(nums: integer-array, k: integer) → integer-array
numsinteger-array
要旋转的整数数组
kinteger
向右旋转几步
返回值integer-array
nums 向右旋转 k 步

约束条件

  • 1 ≤ nums.length ≤ 5000
  • -104 ≤ nums[i] ≤ 104
  • 0 ≤ k ≤ 109

示例

输入
nums = [4, 9, 1, 6, 3]k = 2
输出
[6, 3, 4, 9, 1]
解释
向右移动两步后,最后两个值 6 和 3 会绕到前面。其他三个值向右移动两位,并保持原来的顺序:[6, 3, 4, 9, 1]。
challenge icon

进阶

你能把每个值直接移到 (i + k) mod n,同时把被替换的值继续向后移动,从而原地旋转吗?这样会形成多少个循环?

重置代码
def rotate(nums, k):
    # 在这里编写代码

测试 #1

测试 #2

测试 #3

参数

nums = [4, 9, 1, 6, 3]
k = 2

预期输出

[6, 3, 4, 9, 1]