LeetCode 189.轮转数组
1.这个题我用的方法比较巧妙,大家如果觉得好的话,就给个免费的赞吧^ _ ^,谢谢了。
void reverse(int* nums,int left,int right)
{
while(left < right)
{
int a = nums[left];
nums[left] = nums[right];
nums[right] = a;
left++;
right--;
}
}
void rotate(int* nums, int numsSize, int k)
{
if(k >= numsSize)
k %= numsSize;
//前n - k个数逆置
reverse(nums,0,numsSize - k - 1);
//后k个数逆置
reverse(nums,numsSize - k,numsSize - 1);
//全部逆置
reverse(nums,0,numsSize - 1);
}