Common elements in all rows of a given matrix in C
Common elements in all row of a given matrix in C
Here, in this page we will discuss the program to find the common elements in all row of a given matrix in C+Programming language. We will discuss algorithm along it’s code.
Algorithm :
In this algorithm we will check for every element in first row, if that is present in other rows or not.
- For checking the presence, take one variable count.
- Now, run a loop from index 1 to M.
- Take a variable flag =0;
- Now, run a loop from index 0 to N, if (x==mat[i][j]) set flag =1 and break the loop.
- After coming out from loop check if(flag==1) set, count++.
- At last, check if count == M-1, print that value.
Time and Space Complexity :
- Time complexity: O(M*M*N)
- Space complexity: O(1)
Code in C
Run
#include <stdio.h>
#define M 4
#define N 5
void printCommonElements(int mat[M][N])
{
for (int j = 0; j < N; j++)
{
int x = mat[0][j], count = 0;
for (int i = 1; i < M; i++){
int flag = 0;
for(int j = 0; j < N; j++){
if(x==mat[i][j]){
flag = 1;
mat[i][j] = -1;
break;
}
}
if(flag==1){
count++;
}
}
if (count==M-1)
printf("%d ", x);
}
}
int main()
{
int mat[M][N] =
{
{10, 20, 10, 40, 80},
{30, 70, 80, 50, 10},
{80, 70, 70, 30, 10},
{80, 10, 20, 70, 90},
};
printCommonElements(mat);
return 0;
}
Output :
10 80

Login/Signup to comment