void rotate(int* nums, int numsSize, int k)
{
if (numsSize < k)
{
while (numsSize < k)
{
k = k - numsSize;
}
}
int i = 0;
int j = numsSize - 1;
for (; i < j; i++, j--)
{
int tmp = nums[i];
nums[i] = nums[j];
nums[j] = tmp;
}
i = 0;
j = k - 1;
for (; i < j; i++, j--)
{
int tmp = nums[i];
nums[i] = nums[j];
nums[j] = tmp;
}
i = k;
j = numsSize - 1;
for (; i < j; i++, j--)
{
int tmp = nums[i];
nums[i] = nums[j];
nums[j] = tmp;
}
}
int main()
{
int str[] = { 1,2,3,4,5,6,7,8,9 };
rotate(str, sizeof(str) / sizeof(str[0]), 5);
for (int i = 0; i < sizeof(str) / sizeof(str[0]); i++)
{
printf("%d", str[i]);
}
return 0;
}
|