Related Articles

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

• Difficulty Level : Easy
• Last Updated : 26 May, 2021

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)

Attention reader! Don’t stop learning now. Get hold of all the important DSA concepts with the DSA Self Paced Course at a student-friendly price and become industry ready.  To complete your preparation from learning a language to DS Algo and many more,  please refer Complete Interview Preparation Course.

In case you wish to attend live classes with experts, please refer DSA Live Classes for Working Professionals and Competitive Programming Live for Students.

My Personal Notes arrow_drop_up