
void reversal(int* nums_r,int numsSize_r)
{
int temp = 0;
for(int i= 0;i < numsSize_r/2;i ++)
{
temp = nums_r[i];
nums_r[i] = nums_r[numsSize_r-1-i];
nums_r[numsSize_r-1-i] = temp;
}
}
void rotate(int* nums, int numsSize, int k) {
k = k % numsSize;
reversal(nums,numsSize);
reversal(nums,k);
reversal(nums+k,numsSize-k);
}
//优先满足一下空间复杂度试试看,使用反转数组
这题的关键在于意识到,如果是一个闭合的数组,旋转和平移其实在某种意义上是等价的。

被折叠的 条评论
为什么被折叠?



