Programa Java para rotar la array 45 grados

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
      8

Entrada: 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:

  1. Almacene los elementos diagonales en una lista usando una variable de contador.
  2. Imprima la cantidad de espacios necesarios para que la salida se vea como el patrón deseado.
  3. Imprime los elementos de la lista después de invertir la lista .
  4. 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
Producción: 

       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

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *