Dadas las arrays de permutación A[] que consisten en N números en el rango [1, N] , la tarea es girar a la izquierda todos los números pares y girar a la derecha todos los números impares de la permutación e imprimir la permutación actualizada.
Nota: N siempre es par.
Ejemplos:
Entrada: A = {1, 2, 3, 4, 5, 6, 7, 8}
Salida: {7, 4, 1, 6, 3, 8, 5, 2}
Explicación:
Elemento par = {2, 4, 6, 8}
Elemento impar = {1, 3, 5, 7}
Rotación a la izquierda de un número par = {4, 6, 8, 2}
Rotación a la derecha de un número impar = {7, 1, 3, 5}
Combinación de números impares y número par alternativamente.
Entrada: A = {1, 2, 3, 4, 5, 6}
Salida: {5, 4, 1, 6, 3, 2}
Acercarse:
- Está claro que los elementos impares siempre están en el índice par y los elementos pares siempre están en el índice impar.
- Para hacer la rotación a la izquierda de un número par, elegimos solo índices impares.
- Para hacer la rotación correcta de un número impar, elegimos solo índices pares.
- Imprime la array actualizada.
A continuación se muestra la implementación del enfoque anterior:
Java
// Java program to implement // the above approach import java.io.*; import java.util.*; import java.lang.*; class GFG { // function to left rotate static void left_rotate(int[] arr) { int last = arr[1]; for (int i = 3; i < arr.length; i = i + 2) { arr[i - 2] = arr[i]; } arr[arr.length - 1] = last; } // function to right rotate static void right_rotate(int[] arr) { int start = arr[arr.length - 2]; for (int i = arr.length - 4; i >= 0; i = i - 2) { arr[i + 2] = arr[i]; } arr[0] = start; } // Function to rotate the array public static void rotate(int arr[]) { left_rotate(arr); right_rotate(arr); for (int i = 0; i < arr.length; i++) { System.out.print(arr[i] + " "); } } // Driver code public static void main(String[] args) { int arr[] = { 1, 2, 3, 4, 5, 6 }; rotate(arr); } }
5 4 1 6 3 2
Complejidad temporal: O(N)
Espacio auxiliar: O(1)
Consulte el artículo completo sobre Rotar todos los números impares a la derecha y todos los números pares a la izquierda en una array de 1 a N 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