Dadas dos arrays A y B de tamaño M x N , la tarea es concatenarlas en una sola array.
Concatenación de array: El proceso de agregar elementos de cada fila de la array uno tras otro se conoce como Concatenación de array.
Ejemplos:
Input: A[][] = {{1, 2}, {3, 4}}, B[][] = {{5, 6}, {7, 8}} Output: 1 2 5 6 3 4 7 8 Explanation: Elements of every row of the matrix B is appended into the row of matrix A. Input: A[][] = {{2, 4}, {3, 4}} B[][] = {{1, 2}, {1, 3}} Output: 2 4 1 2 3 4 1 3
Enfoque: la idea es declarar una array de tamaño N x 2*M , luego atravesar la array A y almacenar los elementos en la primera mitad de la array y luego iterar de manera similar sobre la array B y almacenar los elementos en la otra mitad de la array con la ayuda de las siguientes fórmulas:
// For filling the // first half of matrix matrix[i][j] = A[i][j] // For filling the // second half of matrix matrix[i][j+N] = A[i][j + N]
A continuación se muestra la implementación del enfoque anterior:
C++
// C++ implementation to concatenate // two matrices of size N x M #include <bits/stdc++.h> using namespace std; #define M 2 #define N 2 // Function to concatenate two // matrices A[][] and B[][] void mergeMatrix(int A[M][N], int B[M][N]) { // Matrix to store // the result int C[M][2 * N]; // Merge the two matrices for (int i = 0; i < M; i++) { for (int j = 0; j < N; j++) { // To store elements // of matrix A C[i][j] = A[i][j]; // To store elements // of matrix B C[i][j + N] = B[i][j]; } } // Print the result for (int i = 0; i < M; i++) { for (int j = 0; j < 2 * N; j++) cout << C[i][j] << " "; cout << endl; } } // Driven Code int main() { int A[M][N] = { { 1, 2 }, { 3, 4 } }; int B[M][N] = { { 5, 6 }, { 7, 8 } }; // Find the merge of // the 2 matrices mergeMatrix(A, B); return 0; }
Java
// Java implementation to concatenate // two matrices of size N x M class GFG{ static final int M = 2; static final int N = 2; // Function to concatenate two // matrices A[][] and B[][] static void mergeMatrix(int A[][], int B[][]) { // Matrix to store // the result int [][]C = new int[M][2 * N]; // Merge the two matrices for(int i = 0; i < M; i++) { for(int j = 0; j < N; j++) { // To store elements // of matrix A C[i][j] = A[i][j]; // To store elements // of matrix B C[i][j + N] = B[i][j]; } } // Print the result for(int i = 0; i < M; i++) { for(int j = 0; j < 2 * N; j++) System.out.print(C[i][j] + " "); System.out.println(); } } // Driven Code public static void main(String[] args) { int A[][] = { { 1, 2 }, { 3, 4 } }; int B[][] = { { 5, 6 }, { 7, 8 } }; // Find the merge of // the 2 matrices mergeMatrix(A, B); } } // This code is contributed by gauravrajput1
Python3
# Python3 implementation to concatenate # two matrices of size N x M M = 2 N = 2 # Function to concatenate two # matrices A[][] and B[][] def mergeMatrix(A, B): # Matrix to store # the result C = [[0 for j in range(2 * N)] for i in range(M)] # Merge the two matrices for i in range(M): for j in range(N): # To store elements # of matrix A C[i][j] = A[i][j] # To store elements # of matrix B C[i][j + N] = B[i][j] # Print the result for i in range(M): for j in range(2 * N): print(C[i][j], end = ' ') print() # Driver code if __name__=='__main__': A = [ [1, 2], [3, 4] ] B = [ [5, 6], [7, 8] ] # Find the merge of # the 2 matrices mergeMatrix(A, B) # This code is contributed by rutvik_56
C#
// C# implementation to concatenate // two matrices of size N x M using System; class GFG{ const int M = 2; const int N = 2; // Function to concatenate two // matrices A[][] and B[][] static void mergeMatrix(int[,] A, int[,] B) { // Matrix to store // the result int[,] C = new int[M, 2 * N]; // Merge the two matrices for(int i = 0; i < M; i++) { for(int j = 0; j < N; j++) { // To store elements // of matrix A C[i, j] = A[i, j]; // To store elements // of matrix B C[i, j + N] = B[i, j]; } } // Print the result for(int i = 0; i < M; i++) { for(int j = 0; j < 2 * N; j++) Console.Write(C[i, j] + " "); Console.WriteLine(); } } // Driver code static void Main() { int[,] A = { { 1, 2 }, { 3, 4 } }; int[,] B = { { 5, 6 }, { 7, 8 } }; // Find the merge of // the 2 matrices mergeMatrix(A, B); } } // This code is contributed by divyeshrabadiya07
Javascript
<script> // Javascript implementation to concatenate // two matrices of size N x M M = 2 N = 2 // Function to concatenate two // matrices A[][] and B[][] function mergeMatrix(A,B) { // Matrix to store // the result var C = [[0,0,0,0], [0,0,0,0]] // Merge the two matrices for (var i = 0; i < M; i++) { for (var j = 0; j < N; j++) { // To store elements // of matrix A C[i][j] = A[i][j]; // To store elements // of matrix B C[i][j + N] = B[i][j]; } } // Print the result for (var i = 0; i < M; i++) { for (var j = 0; j < 2 * N; j++) document.write( C[i][j] + " "); document.write("<br>"); } } // Driven Code var A = [ [ 1, 2 ], [ 3, 4 ] ]; var B = [ [ 5, 6 ], [ 7, 8 ] ]; // Find the merge of // the 2 matrices mergeMatrix(A, B); // This code is contributed by noob2000. </script>
Producción:
1 2 5 6 3 4 7 8
Complejidad de tiempo: O(M * N)
Espacio Auxiliar: O(M * N)