这个题目很简单,因为说到了 k 是一个非负数,那么我们就可以 求模的时候就不用考虑的下标还会越界了,往右边 移动 其实就是当前下标 i+k ,为了保证它能头尾相接并且不越界 ,那么就是 需要求模 numsSize 这个。
当时脑子一热写反了,然后各种报错。
代码如下:
void rotate(int* nums, int numsSize, int k)
{
if(numsSize<=1) return;
int t[numsSize+10];
for (int i = 0; i < numsSize; i++) {
t[(i + k) % numsSize] = nums[i];
}
for (int i = 0; i < numsSize; i++) {
nums[i] = t[i];
}
}