Dada una array mat[][] de tamaño N*N, la tarea es rotar la array 45 grados e imprimir la array.
Ejemplos:
Entrada: N = 6,
mat[][] =Salida:
3
6 4
1 9 5
4 5 8 1
4 7 9 7 5
4 5 8 7 2 9
5 2 9 5 5
7 9 3 3
2 5 5
9 6
8Entrada: N = 4,
mat[][] =Salida:
2
9 5
5 1 7
6 8 4 2
4 2 3
6 3
3
Enfoque: Siga los pasos que se indican a continuación para resolver el problema:
- Almacene los elementos diagonales en una lista usando una variable de contador.
- Imprima la cantidad de espacios necesarios para que la salida se vea como el patrón deseado.
- Imprime los elementos de la lista después de invertir la lista .
- Atraviese únicamente elementos diagonales para optimizar el tiempo de la operación.
A continuación se muestra la implementación del enfoque anterior:
Java
// Java program for // the above approach import java.util.*; class GFG{ // Function to rotate // matrix by 45 degree static void matrix(int n, int m, int [][]li) { // Counter Variable int ctr = 0; while (ctr < 2 * n - 1) { for(int i = 0; i < Math.abs(n - ctr - 1); i++) { System.out.print(" "); } Vector<Integer> lst = new Vector<Integer>(); // Iterate [0, m] for(int i = 0; i < m; i++) { // Iterate [0, n] for(int j = 0; j < n; j++) { // Diagonal Elements // Condition if (i + j == ctr) { // Appending the // Diagonal Elements lst.add(li[i][j]); } } } // Printing reversed Diagonal // Elements for(int i = lst.size() - 1; i >= 0; i--) { System.out.print(lst.get(i) + " "); } System.out.println(); ctr += 1; } } // Driver code public static void main(String[] args) { // Dimensions of Matrix int n = 8; int m = n; // Given matrix int[][] li = {{4, 5, 6, 9, 8, 7, 1, 4}, {1, 5, 9, 7, 5, 3, 1, 6}, {7, 5, 3, 1, 5, 9, 8, 0}, {6, 5, 4, 7, 8, 9, 3, 7}, {3, 5, 6, 4, 8, 9, 2, 1}, {3, 1, 6, 4, 7, 9, 5, 0}, {8, 0, 7, 2, 3, 1, 0, 8}, {7, 5, 3, 1, 5, 9, 8, 5}}; // Function call matrix(n, m, li); } } // This code is contributed by Princi Singh
4 1 5 7 5 6 6 5 9 9 3 5 3 7 8 3 5 4 1 5 7 8 1 6 7 5 3 1 7 0 6 4 8 9 1 4 5 7 4 8 9 8 6 3 2 7 9 3 0 1 3 9 2 7 5 1 5 1 9 0 0 8 8 5
Complejidad de Tiempo: O(N 2 )
Espacio Auxiliar: O(1)
Consulte el artículo completo sobre Rotar la array 45 grados 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