Dadas N filas con M elementos cada una y un arreglo arr[] de L números, la tarea es imprimir el conteo de elementos de ese arreglo presente en cada fila de la array.
Ejemplos:
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
Un enfoque ingenuo es iterar para cada elemento en el arreglo arr[] y para la i -ésima fila hacer una búsqueda lineal para cada elemento en el arreglo arr[]. Cuente el número de elementos e imprima el resultado para cada fila.
Complejidad de tiempo: O(N*M*L)
Un enfoque eficiente es iterar para todos los elementos en la i -ésima fila de la array. Marque todos los elementos usando una tabla hash . Iterar en la array de números en la array Z, verificar si el número está presente en la tabla hash. Aumente el recuento de cada elemento presente. Una vez comprobados todos los elementos, imprima el recuento.
A continuación se muestra la implementación del enfoque anterior:
C++
// 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
// 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
# 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
<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
Complejidad de tiempo: O(N*M)