Dada una array de tamaño N y valores K , alrededor de los cuales debemos rotar la array a la derecha. ¿Cómo imprimir rápidamente la array girada a la derecha?
Ejemplos:
Input: Array[] = {1, 3, 5, 7, 9}, K = 2. Output: 7 9 1 3 5 Explanation: After 1st rotation - {9, 1, 3, 5, 7} After 2nd rotation - {7, 9, 1, 3, 5} Input: Array[] = {1, 2, 3, 4, 5}, K = 4. Output: 2 3 4 5 1
Acercarse:
- Primero tomaremos mod de K por N (K = K % N) porque después de cada N rotaciones, la array se convertirá en la misma que la array inicial.
- Ahora, iteraremos la array de i = 0 a i = N-1 y verificaremos,
- Si i < K , imprime el K-ésimo elemento más a la derecha (a[N + i -K]). De lo contrario,
- Imprime una array después de los elementos ‘K’ (a[i – K]).
- Si i < K , imprime el K-ésimo elemento más a la derecha (a[N + i -K]). De lo contrario,
A continuación se muestra la implementación del enfoque anterior.
Java
// Java Implementation of Right Rotation // of an Array K number of times import java.util.*; import java.lang.*; import java.io.*; class Array_Rotation { // Function to rightRotate array static void RightRotate(int a[], int n, int k) { // If rotation is greater // than size of array k=k%n; for(int i = 0; i < n; i++) { if(i<k) { // Printing rightmost // kth elements System.out.print(a[n + i - k] + " "); } else { // Prints array after // 'k' elements System.out.print(a[i - k] + " "); } } System.out.println(); } // Driver program public static void main(String args[]) { int Array[] = {1, 2, 3, 4, 5}; int N = Array.length; int K = 2; RightRotate(Array, N, K); } } // This code is contributed by M Vamshi Krishna
Producción:
4 5 1 2 3
Complejidad temporal : O(n)
Espacio auxiliar : O(1)
Consulte el artículo completo sobre la array de impresión después de que se gire a la derecha K veces 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