circular left shift of an array by n positions in java

前端 未结 12 2371
醉梦人生
醉梦人生 2020-12-31 20:16

I am trying to do the circular left shift of an array by n positions using only a single 1D array. I can do it in two arrays, but I haven\'t figured out how to do it using o

12条回答
  •  半阙折子戏
    2020-12-31 20:55

    How about this?

        // Left shift the array in O(n) with O(1) space.
    
    public static void leftShift(int[] array, int n) {
        int temp;
        int len = array.length;
        for (int i = 0; i < n; i++) {
            temp = array[len - n + i];
            array[len - n + i] = array[i];
            array[i] = array[n + i];
            array[n + i] = temp;
        }
    }
    

提交回复
热议问题