Dada una array de enteros arr[] de tamaño N , la tarea es imprimir todas las rotaciones posibles de la array.
Ejemplos:
Entrada: arr[] = {1, 2, 3, 4}
Salida: {1, 2, 3, 4}, {4, 1, 2, 3}, {3, 4, 1, 2}, {2, 3, 4, 1}
Explicación:
Inicial arr[] = {1, 2, 3, 4}
Después de la primera rotación arr[] = {4, 1, 2, 3}
Después de la segunda rotación arr[] = {3, 4, 1, 2}
Después de la tercera rotación arr[] = {2, 3, 4, 1}
Después de la cuarta rotación, arr[] vuelve a su forma original.
Entrada: arr[] = [1]
Salida: [1]
Enfoque:
siga los pasos a continuación para resolver el problema:
- Genere todas las rotaciones posibles de la array, realizando una rotación a la izquierda de la array una por una.
- Imprima todas las rotaciones posibles de la array hasta que se encuentre la misma rotación de la array.
A continuación se muestra la implementación del enfoque anterior:
Java
// Java program to print // all possible rotations // of the given array class GFG{ // Global declaration of array static int arr[] = new int[10000]; // Function to reverse array // between indices s and e public static void reverse(int arr[], int s, int e) { while(s < e) { int tem = arr[s]; arr[s] = arr[e]; arr[e] = tem; s = s + 1; e = e - 1; } } // Function to generate all // possible rotations of array public static void fun(int arr[], int k) { int n = 4 - 1; int v = n - k; if (v >= 0) { reverse(arr, 0, v); reverse(arr, v + 1, n); reverse(arr, 0, n); } } // Driver code public static void main(String args[]) { arr[0] = 1; arr[1] = 2; arr[2] = 3; arr[3] = 4; for(int i = 0; i < 4; i++) { fun(arr, i); System.out.print("["); for(int j = 0; j < 4; j++) { System.out.print(arr[j] + ", "); } System.out.print("]"); } } } // This code is contributed by gk74533
[1, 2, 3, 4] [4, 1, 2, 3] [2, 3, 4, 1] [3, 4, 1, 2]
Complejidad Temporal: O (N 2 )
Espacio Auxiliar: O (1)
Consulte el artículo completo sobre Imprimir todas las rotaciones posibles de una array determinada para obtener más detalles.
Publicación traducida automáticamente
Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA