# Count of elements of an array present in every row of NxM matrix

Given N rows with M elements each and an array arr[] of L numbers, the task is to print the count of elements of that array present in every row of the matrix.

Examples:

```Input: {8 27 39 589 23
23 34 589 12 45
939 32 27 12 78
23 349 48 21 32},

arr[] = {589, 39, 27}

Output: 1st row - 3
2nd row - 1
3rd row - 1
4th row - 0
In 1st row, all three elements in array z[] are present
In 2nd row, only 589 in array z[] are present
In 3rd row, only 27 in array z[] are present
In 4th row, none of the elements are present.

Input: {1, 2, 3
4, 5, 6},

arr[] = {2, 3, 4}

Output: 1st row - 2
2nd row - 1
```

## Recommended: Please try your approach on {IDE} first, before moving on to the solution.

A naive approach is to iterate for every element in the array arr[] and for ith row do a linear search for every element in the array arr[]. Count the number of elements and print the result for every row.

Time Complexity: O(N*M*L)

An efficient approach is to iterate for all the elements in the ith row of the matrix. Mark all elements using a hash table. Iterate in the array of numbers in the Z array, check if the number is present in the hash-table. Increase the count for every element present. Once all the elements are checked, print the count.

Below is the implementation of the above approach:

## C++

 `// C++ program to print the count of ` `// elements present in the NxM matrix ` `#include ` `using` `namespace` `std; ` ` `  `// Function to print the count of ` `// elements present in the NxM matrix ` `void` `printCount(``int` `a[], ``int` `n, ``int` `m, ``int` `z[], ``int` `l) ` `{ ` `    ``// iterate in the n rows ` `    ``for` `(``int` `i = 0; i < n; i++) { ` `        ``// map to mark elements in N-th row ` `        ``unordered_map<``int``, ``int``> mp; ` ` `  `        ``// mark all elements in the n-th row ` `        ``for` `(``int` `j = 0; j < m; j++) ` `            ``mp[a[i][j]] = 1; ` ` `  `        ``int` `count = 0; ` ` `  `        ``// check for occurrence of all elements ` `        ``for` `(``int` `j = 0; j < l; j++) { ` `            ``if` `(mp[z[j]]) ` `                ``count += 1; ` `        ``} ` ` `  `        ``// print the occurrence of all elements ` `        ``cout << ``"row"` `<< i + 1 << ``" = "` `<< count << endl; ` `    ``} ` `} ` ` `  `// Driver Code ` `int` `main() ` `{ ` ` `  `    ``// NxM matrix ` `    ``int` `a[] = { { 8, 27, 39, 589, 23 }, ` `                ``{ 23, 34, 589, 12, 45 }, ` `                ``{ 939, 32, 27, 12, 78 }, ` `                ``{ 23, 349, 48, 21, 32 } }; ` ` `  `    ``// elements array ` `    ``int` `arr[] = { 589, 39, 27 }; ` ` `  `    ``int` `n = ``sizeof``(a) / ``sizeof``(a); ` ` `  `    ``int` `m = 5; ` ` `  `    ``int` `l = ``sizeof``(arr) / ``sizeof``(arr); ` ` `  `    ``printCount(a, n, m, arr, l); ` ` `  `    ``return` `0; ` `} `

## Java

 `// Java program to print the count of  ` `// elements present in the NxM matrix  ` `import` `java.util.*; ` ` `  `class` `GFG  ` `{ ` ` `  `// Function to print the count of  ` `// elements present in the NxM matrix  ` `static` `void` `printCount(``int` `a[][], ``int` `n, ``int` `m, ` `                                ``int` `z[], ``int` `l)  ` `{  ` `    ``// iterate in the n rows  ` `    ``for` `(``int` `i = ``0``; i < n; i++) ` `    ``{  ` `        ``// map to mark elements in N-th row  ` `        ``Map mp = ``new` `HashMap<>(); ` ` `  `        ``// mark all elements in the n-th row  ` `        ``for` `(``int` `j = ``0``; j < m; j++)  ` `            ``mp.put(a[i][j], ``1``);  ` ` `  `        ``int` `count = ``0``;  ` ` `  `        ``// check for occurrence of all elements  ` `        ``for` `(``int` `j = ``0``; j < l; j++)  ` `        ``{  ` `            ``if` `(mp.containsKey(z[j]))  ` `                ``count += ``1``;  ` `        ``}  ` ` `  `        ``// print the occurrence of all elements  ` `                ``System.out.println(``"row"` `+(i + ``1``) + ``" = "` `+ count);  ` `    ``}  ` `}  ` ` `  `// Driver Code  ` `public` `static` `void` `main(String[] args)  ` `{ ` `    ``// NxM matrix  ` `    ``int` `a[][] = { { ``8``, ``27``, ``39``, ``589``, ``23` `},  ` `                ``{ ``23``, ``34``, ``589``, ``12``, ``45` `},  ` `                ``{ ``939``, ``32``, ``27``, ``12``, ``78` `},  ` `                ``{ ``23``, ``349``, ``48``, ``21``, ``32` `} };  ` ` `  `    ``// elements array  ` `    ``int` `arr[] = { ``589``, ``39``, ``27` `};  ` ` `  `    ``int` `n = a.length;  ` ` `  `    ``int` `m = ``5``;  ` ` `  `    ``int` `l = arr.length;  ` ` `  `    ``printCount(a, n, m, arr, l);  ` `    ``} ` `} ` ` `  `// This code is contributed by 29AjayKumar `

## Python3

 `# Python3 program to print the count of ` `# elements present in the NxM matrix ` ` `  `# Function to print the count of ` `# elements present in the NxM matrix ` `def` `printCount(a, n, m, z, l): ` ` `  `    ``# iterate in the n rows ` `    ``for` `i ``in` `range``(n): ` `         `  `        ``# map to mark elements in N-th row ` `        ``mp ``=` `dict``() ` ` `  `        ``# mark all elements in the n-th row ` `        ``for` `j ``in` `range``(m): ` `            ``mp[a[i][j]] ``=` `1` ` `  `        ``count ``=` `0` ` `  `        ``# check for occurrence of all elements ` `        ``for` `j ``in` `range``(l): ` `             `  `            ``if` `z[j] ``in` `mp.keys(): ` `                 `  `                ``count ``+``=` `1` `         `  `        ``# print the occurrence of all elements ` `        ``print``(``"row"``, i ``+` `1``, ``" = "``, count ) ` ` `  `# Driver Code ` ` `  `# NxM matrix ` `a ``=` `[[ ``8``, ``27``, ``39``, ``589``, ``23` `], ` `     ``[ ``23``, ``34``, ``589``, ``12``, ``45` `], ` `     ``[ ``939``, ``32``, ``27``, ``12``, ``78` `], ` `     ``[ ``23``, ``349``, ``48``, ``21``, ``32` `]] ` ` `  `# elements array ` `arr ``=` `[ ``589``, ``39``, ``27` `] ` ` `  `n ``=` `len``(a) ` ` `  `m ``=` `5` ` `  `l ``=` `len``(arr) ` ` `  `printCount(a, n, m, arr, l) ` ` `  `# This code is contributed by mohit kumar 29 `

## C#

 `// C# program to print the count of  ` `// elements present in the NxM matrix  ` `using` `System; ` `using` `System.Collections.Generic; ` ` `  `class` `GFG  ` `{ ` ` `  `// Function to print the count of  ` `// elements present in the NxM matrix  ` `static` `void` `printCount(``int` `[,]a, ``int` `n, ``int` `m, ` `                                ``int` `[]z, ``int` `l)  ` `{  ` `    ``// iterate in the n rows  ` `    ``for` `(``int` `i = 0; i < n; i++) ` `    ``{  ` `        ``// map to mark elements in N-th row  ` `        ``Dictionary<``int``,``int``> mp = ``new` `Dictionary<``int``,``int``>(); ` ` `  `        ``// mark all elements in the n-th row  ` `        ``for` `(``int` `j = 0; j < m; j++)  ` `            ``mp.Add(a[i,j], 1);  ` ` `  `        ``int` `count = 0;  ` ` `  `        ``// check for occurrence of all elements  ` `        ``for` `(``int` `j = 0; j < l; j++)  ` `        ``{  ` `            ``if` `(mp.ContainsKey(z[j]))  ` `                ``count += 1;  ` `        ``}  ` ` `  `        ``// print the occurrence of all elements  ` `        ``Console.WriteLine(``"row"` `+(i + 1) + ``" = "` `+ count);  ` `    ``}  ` `}  ` ` `  `// Driver Code  ` `public` `static` `void` `Main(String[] args)  ` `{ ` `    ``// NxM matrix  ` `    ``int` `[,]a = { { 8, 27, 39, 589, 23 },  ` `                ``{ 23, 34, 589, 12, 45 },  ` `                ``{ 939, 32, 27, 12, 78 },  ` `                ``{ 23, 349, 48, 21, 32 } };  ` ` `  `    ``// elements array  ` `    ``int` `[]arr = { 589, 39, 27 };  ` ` `  `    ``int` `n = a.GetLength(0);  ` ` `  `    ``int` `m = 5;  ` ` `  `    ``int` `l = arr.Length;  ` ` `  `    ``printCount(a, n, m, arr, l);  ` `} ` `} ` ` `  `/* This code is contributed by PrinciRaj1992 */`

Output:

```row1 = 3
row2 = 1
row3 = 1
row4 = 0
```

Time Complexity: O(N*M)

My Personal Notes arrow_drop_up Striver(underscore)79 at Codechef and codeforces D

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.

Article Tags :
Practice Tags :

Be the First to upvote.

Please write to us at contribute@geeksforgeeks.org to report any issue with the above content.