本题来自力扣刷题:轮转数组
- 首先我们来看一下题目描述
解题思路:首先创建一个新的数组,将后面k个数据数据放到新数组前面,将size-1个数据放在剩下的空间中,再把新数组的数据赋值给nums。 - 看下图更好理解
- 代码展示
void rotate(int* nums, int numsSize, int k) {//申请一个新的空间int newArr[numsSize];//数组中的后k个数据放在数组前面//原来的数组的前size-k个数据放到剩下的空间for(int i =0 ; i < numsSize ; i++){newArr[(i + k) % numsSize] = nums[i];}//将newArr的数据放到nums中for(int i = 0 ; i < numsSize ; i++){nums[i] = newArr[i];}
}