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.
Python3
# Python3 implementation of right rotation # of an array K number of times # Function to rightRotate array def RightRotate(a, n, k): # If rotation is greater # than size of array k = k % n; for i in range(0, n): if(i < k): # Printing rightmost # kth elements print(a[n + i - k], end = " "); else: # Prints array after # 'k' elements print(a[i - k], end = " "); print(" "); # Driver code Array = [ 1, 2, 3, 4, 5 ]; N = len(Array); K = 2; RightRotate(Array, N, K); # This code is contributed by Code_Mech
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