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

• Difficulty Level : Easy
• Last Updated : 26 Aug, 2022

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```

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 */`

## Javascript

 ``

Output

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

Time Complexity: O(N*M)

My Personal Notes arrow_drop_up
Recommended Articles
Page :