顺时针旋转数组
发布: (2025年12月18日 GMT+8 04:18)
2 min read
原文: Dev.to
Source: Dev.to
什么是数组旋转?
数组旋转是将数组元素按一定次数(k)移动到新位置的过程。
数组旋转有两种类型:
- 顺时针旋转(右旋转 / 右移)
- 逆时针旋转(左旋转 / 左移)
顺时针旋转
顺时针旋转指将数组元素向右移动。
顺时针旋转的步骤
- 反转整个数组。
- 反转前 k 个元素(索引 0 到 k – 1)。
- 反转从 k 到 size – 1 的元素。
class Main {
public static void reverseArray(int[] arr, int sIndex, int eIndex) {
while (sIndex length
System.out.println("original Array : ");
for (int i = 0; i < num.length; i++) {
System.out.print(num[i] + " ");
}
// step 1: reverse whole array
reverseArray(num, 0, num.length - 1);
// step 2: reverse first k elements
reverseArray(num, 0, k - 1);
// step 3: reverse remaining elements
reverseArray(num, k, num.length - 1);
System.out.println();
System.out.println("After " + k + "th clock wise rotation : ");
for (int i = 0; i < num.length; i++) {
System.out.print(num[i] + " ");
}
}
}
示例输出
original Array :
10 20 30 40 50
After 2th clock wise rotation :
40 50 10 20 30