顺时针旋转数组

发布: (2025年12月18日 GMT+8 04:18)
2 min read
原文: Dev.to

Source: Dev.to

什么是数组旋转?

数组旋转是将数组元素按一定次数(k)移动到新位置的过程。
数组旋转有两种类型:

  • 顺时针旋转(右旋转 / 右移)
  • 逆时针旋转(左旋转 / 左移)

顺时针旋转

顺时针旋转指将数组元素向右移动。

顺时针旋转的步骤

  1. 反转整个数组。
  2. 反转前 k 个元素(索引 0 到 k – 1)。
  3. 反转从 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 
Back to Blog

相关文章

阅读更多 »