# 旋转数组

给定一个数组,将数组中的元素向右移动 k 个位置,其中 k 是非负数。

 

进阶:

 

示例 1:

输入: nums = [1,2,3,4,5,6,7], k = 3
输出: [5,6,7,1,2,3,4]
解释:
向右旋转 1 步: [7,1,2,3,4,5,6]
向右旋转 2 步: [6,7,1,2,3,4,5]
向右旋转 3 步: [5,6,7,1,2,3,4]

示例 2:

输入:nums = [-1,-100,3,99], k = 2
输出:[3,99,-1,-100]
解释: 
向右旋转 1 步: [99,-1,-100,3]
向右旋转 2 步: [3,99,-1,-100]

 

提示:

## template ```java class Solution { public void rotate(int[] nums, int k) { if (k > nums.length) { k = k % nums.length; } int mark = nums.length - k; int mark2 = (nums.length + mark) / 2; for (int i = 0; i < (mark + 1) / 2; i++) { swap(nums, i, mark - 1 - i); } for (int j = mark; j < mark2; j++) { swap(nums, j, nums.length + mark - 1 - j); } for (int index = 0; index < nums.length / 2; index++) { swap(nums, index, nums.length - 1 - index); } } public static void swap(int[] nums, int a, int b) { int temp = nums[a]; nums[a] = nums[b]; nums[b] = temp; } } ``` ## 答案 ```java ``` ## 选项 ### A ```java ``` ### B ```java ``` ### C ```java ```