[C语言]Leetcode 189 Rotate Array

来源:互联网 发布:淘宝网首页官网登录 编辑:程序博客网 时间:2024/06/10 05:56

Rotate Array
Rotate an array of n elements to the right by k steps.

For example, with n = 7 and k = 3, the array [1,2,3,4,5,6,7] is rotated to [5,6,7,1,2,3,4].

void rotate(int* nums, int numsSize, int k) {    if (k >=numsSize) k = k%numsSize;    if (k == 0) return;    int *arr;    int i, j;    arr = (int *)malloc(k*sizeof(int));    for (i = 0; i<k; i++)    {        *(arr + i) = *(nums + numsSize - k + i);    }    for (j = 0; j < numsSize - k; j++)    {        *(nums + numsSize - 1 - j) = *(nums + numsSize - k - 1 - j);    }    for (i = 0; i<k; i++)    {        *(nums + i) = *(arr + i);    }    return;}

加粗斜体部分需要注意,如果直接写成(*int)malloc(int),则会报错runtime error,
“`

1 0