轮转数组题解
1、第一种方法,指导即可,效率太低
void rotate(int* nums, int numsSize, int k) {
int N = numsSize;
k %= N;
int temp = 0;
while(k--)
{
temp = nums[numsSize-1];
for(int i = numsSize - 2; i >= 0; i--)
{
nums[i+1] = nums[i];//不知道循环条件写啥,就先空着,看最后一次运算是什么样的
}
nums[0] = temp;
}
}
2、方法二:三次逆置
将要整个数组依据k进行划分,分别逆置,在对整体进行逆置
3、以空间换时间
开辟新的数组用memcpy进行拷贝