Довольно сложно понять вашу проблему.Я должен добавить больше описания.
Я думаю, если вы используете правильный алгоритм вращения массива, то это не зависит от длины массива.Это один из самых эффективных алгоритмов:
[1,2,3,4,5] -> k = 2 -> [4,5,1,2,3]
-----------------------------------
1. [1,2,3,4,5] -> [5,4,3,2,1]
2. [5,4,3,2,1] -> [4,5,3,2,1]
3. [4,5,3,2,1] -> [4,5,1,2,3]
public static void rotate(int[] arr, int k) {
if ((k %= arr.length) != 0) {
k = k < 0 ? arr.length + k : k;
swapSubArr(arr, 0, arr.length); // 1.
swapSubArr(arr, 0, arr.length - k); // 2.
swapSubArr(arr, arr.length - k, arr.length); // 3.
}
}
private static void swapSubArr(int[] arr, int from, int to) {
for (int i = from, j = to - 1; i < j; i++, j--)
swap(arr, i, j);
}
private static void swap(int[] arr, int i, int j) {
int tmp = arr[i];
arr[i] = arr[j];
arr[j] = tmp;
}