刷题---轮转数组
本题来自力扣刷题:轮转数组
- 首先我们来看一下题目描述
解题思路:首先创建一个新的数组,将后面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];
}
}