Dada una array cuadrada mat[][] de orden N que contiene números enteros en el rango [0, N) , la tarea es reorganizar los elementos de la array de la manera dada. Reemplace el elemento en mat[i][j] con el elemento en mat[x][y] donde x es el número en mat[i][j] e y es el número en mat[j][i] .
Ejemplos:
Entrada: mat[][] = {{1, 3, 0, 4, 2},
{0, 1, 2, 3, 4},
{3, 4, 2, 1, 0},
{4, 1, 0, 2, 2},
{0, 1, 2, 1, 0}}
Salida: 1 4 4 0 3
4 1 0 1 1
4 2 2 0 0
0 3 3 2 4
0 4 3 2 1
Explicación: mat[ 0][1] se reemplaza por mat[3][0] = 4, porque
x = mat[0][1] = 3, y = mat[1][0] = 0 y mat[x][y ] = mat[3][0] = 4.
Y similar para todas las demás posiciones.Entrada: mat[][] = {{0, 1, 1},
{2, 1, 2},
{0, 2, 0}}
Salida: 0 2 2
2 1 0
1 0 0
Enfoque: La idea es ir de acuerdo con el requisito del problema. Recorra la array por filas y encuentre el elemento en mat[i][j] y mat[j][i]. Use estos números x e y como coordenadas para obtener el valor de reemplazo para mat[i][j].
A continuación se muestra la implementación del enfoque anterior:
C++
// C++ code to rearrange the matrix // in specified manner. #include <bits/stdc++.h> using namespace std; const int N = 5; // Function to print matrix. void showMatrix(int mat[][N]) { int i, j; for (i = 0; i < N; i++) { for (j = 0; j < N; j++) { cout << mat[i][j] << " "; } cout << endl; } } // Function to rearrange the matrix // in specified manner. void RearrangeMatrix(int mat[][N]) { int x, y, i, j; for (i = 0; i < N; i++) { for (j = 0; j < N; j++) { x = mat[i][j]; y = mat[j][i]; cout << mat[x][y] << " "; } cout << "\n"; } } // Driver code int main() { int mat[][N] = { { 1, 3, 0, 4, 2 }, { 0, 1, 2, 3, 4 }, { 3, 4, 2, 1, 0 }, { 4, 1, 0, 2, 2 }, { 0, 1, 2, 1, 0 } }; RearrangeMatrix(mat); return 0; }
Java
// Java code to rearrange the matrix // in specified manner. import java.util.*; public class GFG { static int N = 5; // Function to print matrix. static void showMatrix(int mat[][]) { int i, j; for (i = 0; i < N; i++) { for (j = 0; j < N; j++) { System.out.print(mat[i][j] + " "); } System.out.println(); } } // Function to rearrange the matrix // in specified manner. static void RearrangeMatrix(int mat[][]) { int x, y, i, j; for (i = 0; i < N; i++) { for (j = 0; j < N; j++) { x = mat[i][j]; y = mat[j][i]; System.out.print(mat[x][y] + " "); } System.out.println(); } } // Driver code public static void main(String args[]) { int mat[][] = { { 1, 3, 0, 4, 2 }, { 0, 1, 2, 3, 4 }, { 3, 4, 2, 1, 0 }, { 4, 1, 0, 2, 2 }, { 0, 1, 2, 1, 0 } }; RearrangeMatrix(mat); } } // This code is contributed by Samim Hossain Mondal.
Python3
# Python code for the above approach N = 5; # Function to print matrix. def showMatrix(mat): i = None j = None for i in range(N): for j in range(N): print(mat[i][j], end=" "); print('') # Function to rearrange the matrix # in specified manner. def RearrangeMatrix(mat): x = None y = None i = None j = None for i in range(N): for j in range(N): x = mat[i][j]; y = mat[j][i]; print(mat[x][y], end= " "); print('') # Driver code mat = [[1, 3, 0, 4, 2], [0, 1, 2, 3, 4], [3, 4, 2, 1, 0], [4, 1, 0, 2, 2], [0, 1, 2, 1, 0]]; RearrangeMatrix(mat); # This code is contributed by Saurabh Jaiswal
C#
// C# code to rearrange the matrix // in specified manner. using System; public class GFG { static int N = 5; // Function to print matrix. static void showMatrix(int[, ] mat) { int i, j; for (i = 0; i < N; i++) { for (j = 0; j < N; j++) { Console.Write(mat[i, j] + " "); } Console.WriteLine(); } } // Function to rearrange the matrix // in specified manner. static void RearrangeMatrix(int[, ] mat) { int x, y, i, j; for (i = 0; i < N; i++) { for (j = 0; j < N; j++) { x = mat[i, j]; y = mat[j, i]; Console.Write(mat[x, y] + " "); } Console.WriteLine(); } } // Driver code public static void Main() { int[, ] mat = { { 1, 3, 0, 4, 2 }, { 0, 1, 2, 3, 4 }, { 3, 4, 2, 1, 0 }, { 4, 1, 0, 2, 2 }, { 0, 1, 2, 1, 0 } }; RearrangeMatrix(mat); } } // This code is contributed by ukasp.
Javascript
<script> // JavaScript code for the above approach let N = 5; // Function to print matrix. function showMatrix(mat) { let i, j; for (i = 0; i < N; i++) { for (j = 0; j < N; j++) { document.write(mat[i][j] + " "); } document.write('<br>') } } // Function to rearrange the matrix // in specified manner. function RearrangeMatrix(mat) { let x, y, i, j; for (i = 0; i < N; i++) { for (j = 0; j < N; j++) { x = mat[i][j]; y = mat[j][i]; document.write(mat[x][y] + " "); } document.write('<br>') } } // Driver code let mat = [[1, 3, 0, 4, 2], [0, 1, 2, 3, 4], [3, 4, 2, 1, 0], [4, 1, 0, 2, 2], [0, 1, 2, 1, 0]]; RearrangeMatrix(mat); // This code is contributed by Potta Lokesh </script>
1 4 4 0 3 4 1 0 1 1 4 2 2 0 0 0 3 3 2 4 0 4 3 2 1
Complejidad de Tiempo: O(N 2 )
Espacio Auxiliar: O(1)
Publicación traducida automáticamente
Artículo escrito por pintusaini y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA