📜  找到两个矩阵的交集

📅  最后修改于: 2021-04-29 01:55:37             🧑  作者: Mango

给定两个m * n阶的矩阵A [] []B [] [] 。任务是找到两个矩阵的交集为C,其中:

  • ÇIJ = A IJ如果A IJ = B IJ
  • C =“ *”,否则。

例子:

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 * 

由于两个集合的交集是包括两个集合的共同元素的集合,因此类似地,两个矩阵的交集将仅包括对应的共同元素,并将“ *”放置在其余不匹配元素的位置。
为了找到两个矩阵的交集,只需迭代它们的大小并打印*如果两个矩阵中特定位置的元素不相等,则打印该元素。
下面是上述方法的实现:

C++
// CPP program to find intersection
// of two matrices
 
#include 
#define N 4
#define M 4
 
using namespace std;
 
// Function to print the resultant matrix
void printIntersection(int A[][N], int B[][N])
{
    for (int i = 0; i < M; i++) {
        for (int j = 0; j < N; j++) {
 
            // print element value for equal
            // elements else *
            if (A[i][j] == B[i][j])
                cout << A[i][j] << " ";
            else
                cout << "* ";
        }
 
        cout << "\n";
    }
}
 
// Driver Code
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
//  Java program to find intersection
// of two matrices
 
import java.io.*;
 
class GFG {
  static int N = 4;
static int M = 4;
 
 
 
// Function to print the resultant matrix
static void printIntersection(int A[][], int B[][])
{
    for (int i = 0; i < M; i++) {
        for (int j = 0; j < N; j++) {
 
            // print element value for equal
            // elements else *
            if (A[i][j] == B[i][j])
                System.out.print(A[i][j] +" ");
            else
                System.out.print( "* ");
        }
 
        System.out.println( " ");
    }
}
 
// Driver Code
 
    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);
 
    }
}
// This code is contributed by anuj_67..


Python3
# Python 3 program to find intersection
# of two matrices
N, M = 4, 4
 
# Function to print the resultant matrix
def printIntersection(A, B) :
 
    for i in range(M) :
        for j in range(N) :
 
            # print element value for equal
            # elements else *
            if (A[i][j] == B[i][j]) :
                print(A[i][j], end = " ")
            else :
                print("* ", end = " ")
         
        print()
         
# Driver Code
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)
 
# This code is contributed by Ryuga


C#
// C# program to find intersection
// of two matrices
 
using System;
 
class GFG {
static int N = 4;
static int M = 4;
 
 
 
// Function to print the resultant matrix
static void printIntersection(int [,]A, int [,]B)
{
    for (int i = 0; i < M; i++) {
        for (int j = 0; j < N; j++) {
 
            // print element value for equal
            // elements else *
            if (A[i,j] == B[i,j])
                Console.Write(A[i,j] +" ");
            else
                Console.Write( "* ");
        }
 
        Console.WriteLine( " ");
    }
}
 
// Driver Code
 
    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);
 
    }
}
// This code is contributed by inder_verma..


PHP


输出:
2 * 6 8 
1 3 5 * 
8 * 4 2 
* 5 * 1

时间复杂度: O(M * N)

辅助空间: O(1)