题解 | #旋转数组#
旋转数组
https://www.nowcoder.com/practice/e19927a8fd5d477794dac67096862042
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
* 旋转数组
* @param n int整型 数组长度
* @param m int整型 右移距离
* @param a int整型一维数组 给定数组
* @param aLen int a数组长度
* @return int整型一维数组
* @return int* returnSize 返回数组行数
*/
void reverse(int* nums, int start, int end) {
int length = end - start + 1;
for (int i = start; i <= (start + end) / 2; i++) {
int temp = nums[end - i + start];
nums[end - i + start] = nums[i];
nums[i] = temp;
}
}
int* solve(int n, int m, int* a, int aLen, int* returnSize ) {
*returnSize = n;
m = m % n;
reverse(a, 0, n - m - 1);
reverse(a, n - m, n - 1);
reverse(a, 0, n - 1);
return a;
}
