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) {
int i;
int k_tmp;
if((k_tmp = k%numsSize) != 0)
{
int *pint = (int*)malloc(numsSize*sizeof(int));
for(i=0; i<numsSize; i++)
{
pint[i] = nums[i];
}
for(i=0; i<numsSize; i++)
{
nums[(i+k_tmp)%numsSize] = pint[i];
}
free(pint);
}
}