#include
#include
void rotate(int* nums, int numsSize, int k)
{
int m, i, j, p;
m = k % numsSize;
p = numsSize - m;
int *a = (int *)malloc(m * sizeof(int));
int *b = (int *)malloc(p * sizeof(int));
if (!m);
else
{
for (i = 0; i < m; i++)
{
a[i] = nums[p];
p++;
}
for (i = 0; i < numsSize - m; i++)
{
b[i] = nums[i];
}
for (i = 0; i < numsSize; i++)
{
if (i < m)
{
nums[i] = a[i];
}
else if (i >= m)
{
nums[i] = b[i - m];
}
}
}
free(a);
free(b);
for (i = 0; i < numsSize; i++)
{
printf("%d ", nums[i]);
}
}
int main()
{
int n, k, i = 0;
scanf ("%d %d", &n, &k);
int a[n];
for (i; i < n; i++)
{
scanf("%d", &a[i]);
}
rotate(a, n, k);
}
之所以一直编译不过去 是因为用指针要申请内存 啊LeetCode真的很严格