思路
k对数组大小取余,然后记录前k个数字,从后往前遍历到k,分别挪到 ( i + k ) % l e n ( n u m s ) (i+k) \% len(nums) (i+k)%len(nums)的位置上
代码
class Solution {public void rotate(int[] nums, int k) {// 轮转k个数, 记录前k个数k = k % nums.length;int[] record = new int[k];for(int i = 0; i < k; i++) record[i] = nums[i];for(int i = nums.length - 1; i >= k; i--){nums[(i+k)%nums.length] = nums[i];}for(int i = 0; i < k; i++){nums[(i + k) % nums.length] = record[i];}}
}