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++ program to print the count of // elements present in the NxM matrix #include <bits/stdc++.h> using namespace std;
// Function to print the count of // elements present in the NxM matrix void printCount( int a[][5], 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[][5] = { { 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[0]);
int m = 5;
int l = sizeof (arr) / sizeof (arr[0]);
printCount(a, n, m, arr, l);
return 0;
} |
// 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<Integer,Integer> 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 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# 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 */ |
<script> // JavaScript program to print the count of // elements present in the NxM matrix // Function to print the count of
// elements present in the NxM matrix function printCount(a,n,m,z,l)
{
// iterate in the n rows
for (let i = 0; i < n; i++)
{
// map to mark elements in N-th row
let mp = new Map();
// mark all elements in the n-th row
for (let j = 0; j < m; j++)
mp.set(a[i][j], 1);
let count = 0;
// check for occurrence of all elements
for (let j = 0; j < l; j++)
{
if (mp.has(z[j]))
count += 1;
}
// print the occurrence of all elements
document.write( "row" +(i + 1) +
" = " + count+ "<br>" );
}
}
// Driver Code
// NxM matrix
let a = [[ 8, 27, 39, 589, 23 ],
[ 23, 34, 589, 12, 45 ],
[ 939, 32, 27, 12, 78 ],
[ 23, 349, 48, 21, 32 ]];
// elements array
let arr=[ 589, 39, 27];
let n = a.length;
let m = 5;
let l = arr.length;
printCount(a, n, m, arr, l);
// This code is contributed by patel2127 </script> |
row1 = 3 row2 = 1 row3 = 1 row4 = 0
Time Complexity: O(N*M)