Find the intersection of two Matrices
Last Updated :
09 Sep, 2022
Given two matrix A[][] and B[][] of same order m*n. The task is to find the intersection of both matrix as C, where:
- Cij = Aij if Aij = Bij
- C = “*”, otherwise.
Examples:
Input :
A[N][N] = {{2, 4, 6, 8},
{1, 3, 5, 7},
{8, 6, 4, 2},
{7, 5, 3, 1}};
B[N][N] = {{0, 4, 3, 8},
{1, 3, 5, 7},
{8, 3, 6, 2},
{4, 5, 3, 4}};
Output :
* 4 * 8
1 3 5 7
8 * * 2
* 5 3 *
As intersection of two set is a set which includes common elements to both set, similarly intersection of two matrix will include only corresponding common element and place “*” at the position of rest unmatching elements.
For finding the intersection of both matrix simply iterate over their size and print * if element at particular position in both matrix are not equal else print the element.
Below is the implementation of the above approach:
C++
#include <bits/stdc++.h>
#define N 4
#define M 4
using namespace std;
void printIntersection( int A[][N], int B[][N])
{
for ( int i = 0; i < M; i++) {
for ( int j = 0; j < N; j++) {
if (A[i][j] == B[i][j])
cout << A[i][j] << " " ;
else
cout << "* " ;
}
cout << "\n" ;
}
}
int main()
{
int A[M][N] = { { 2, 4, 6, 8 },
{ 1, 3, 5, 7 },
{ 8, 6, 4, 2 },
{ 7, 5, 3, 1 } };
int B[M][N] = { { 2, 3, 6, 8 },
{ 1, 3, 5, 2 },
{ 8, 1, 4, 2 },
{ 3, 5, 4, 1 } };
printIntersection(A, B);
return 0;
}
|
Java
import java.io.*;
class GFG {
static int N = 4 ;
static int M = 4 ;
static void printIntersection( int A[][], int B[][])
{
for ( int i = 0 ; i < M; i++) {
for ( int j = 0 ; j < N; j++) {
if (A[i][j] == B[i][j])
System.out.print(A[i][j] + " " );
else
System.out.print( "* " );
}
System.out.println( " " );
}
}
public static void main (String[] args) {
int A[][] = { { 2 , 4 , 6 , 8 },
{ 1 , 3 , 5 , 7 },
{ 8 , 6 , 4 , 2 },
{ 7 , 5 , 3 , 1 } };
int B[][] = { { 2 , 3 , 6 , 8 },
{ 1 , 3 , 5 , 2 },
{ 8 , 1 , 4 , 2 },
{ 3 , 5 , 4 , 1 } };
printIntersection(A, B);
}
}
|
Python3
N, M = 4 , 4
def printIntersection(A, B) :
for i in range (M) :
for j in range (N) :
if (A[i][j] = = B[i][j]) :
print (A[i][j], end = " " )
else :
print ( "* " , end = " " )
print ()
if __name__ = = "__main__" :
A = [ [ 2 , 4 , 6 , 8 ],
[ 1 , 3 , 5 , 7 ],
[ 8 , 6 , 4 , 2 ],
[ 7 , 5 , 3 , 1 ] ]
B = [ [ 2 , 3 , 6 , 8 ],
[ 1 , 3 , 5 , 2 ],
[ 8 , 1 , 4 , 2 ],
[ 3 , 5 , 4 , 1 ] ]
printIntersection(A, B)
|
C#
using System;
class GFG {
static int N = 4;
static int M = 4;
static void printIntersection( int [,]A, int [,]B)
{
for ( int i = 0; i < M; i++) {
for ( int j = 0; j < N; j++) {
if (A[i,j] == B[i,j])
Console.Write(A[i,j] + " " );
else
Console.Write( "* " );
}
Console.WriteLine( " " );
}
}
public static void Main () {
int [,]A = { { 2, 4, 6, 8 },
{ 1, 3, 5, 7 },
{ 8, 6, 4, 2 },
{ 7, 5, 3, 1 } };
int [,]B = { { 2, 3, 6, 8 },
{ 1, 3, 5, 2 },
{ 8, 1, 4, 2 },
{ 3, 5, 4, 1 } };
printIntersection(A, B);
}
}
|
PHP
<?php
function printIntersection( $A , $B )
{
$N = 4; $M = 4;
for ( $i = 0; $i < $M ; $i ++)
{
for ( $j = 0; $j < $N ; $j ++)
{
if ( $A [ $i ][ $j ] == $B [ $i ][ $j ])
echo $A [ $i ][ $j ] . " " ;
else
echo "* " ;
}
echo "\n" ;
}
}
$A = array ( array (2, 4, 6, 8 ),
array (1, 3, 5, 7 ),
array (8, 6, 4, 2 ),
array (7, 5, 3, 1 ) );
$B = array ( array (2, 3, 6, 8 ),
array (1, 3, 5, 2 ),
array (8, 1, 4, 2 ),
array (3, 5, 4, 1 ) );
printIntersection( $A , $B );
?>
|
Javascript
<script>
var N = 4
var M = 4
function printIntersection( A, B)
{
for ( var i = 0; i < M; i++) {
for ( var j = 0; j < N; j++) {
if (A[i][j] == B[i][j])
document.write( A[i][j] + " " );
else
document.write( "* " );
}
document.write( "<br>" );
}
}
var A = [ [ 2, 4, 6, 8 ],
[ 1, 3, 5, 7 ],
[ 8, 6, 4, 2 ],
[ 7, 5, 3, 1 ] ];
var B = [ [ 2, 3, 6, 8 ],
[ 1, 3, 5, 2 ],
[ 8, 1, 4, 2 ],
[ 3, 5, 4, 1 ] ];
printIntersection(A, B);
</script>
|
Output
2 * 6 8
1 3 5 *
8 * 4 2
* 5 * 1
Complexity Analysis:
- Time Complexity: O(M * N)
- Auxiliary Space: O(1)
Like Article
Suggest improvement
Share your thoughts in the comments
Please Login to comment...