# Row-wise common elements in two diagonals of a square matrix

Given a square matrix, find out count of numbers that are same in same row and same in both primary and secondary diagonals.

Examples :

```Input : 1 2 1
4 5 2
0 5 1
Output : 2
Primary diagonal is 1 5 1
Secondary diagonal is 1 5 0
Two elements (1 and 5) match
in two diagonals and same.

Input : 1 0 0
0 1 0
0 0 1
Output : 1
Primary diagonal is 1 1 1
Secondary diagonal is 0 1 0
Only one element is same.
```

## Recommended: Please try your approach on {IDE} first, before moving on to the solution.

We can achieve this in O(n) time, O(1) space and only one traversal. We can find current element in i-th row of primary diagonal as mat[i][i] and i-th element of secondary diagonal as mat[i][n-i-1].

## C++

 `// CPP program to find common elements in ` `// two diagonals. ` `#include ` `#define MAX 100 ` `using` `namespace` `std; ` ` `  `// Returns count of row wise same ` `// elements in two diagonals of ` `// mat[n][n] ` `int` `countCommon(``int` `mat[][MAX], ``int` `n) ` `{ ` `    ``int` `res = 0; ` `    ``for` `(``int` `i=0;i

## Java

 `// Java program to find common  ` `// elements in two diagonals. ` `import` `java.io.*; ` ` `  `class` `GFG ` `{ ` `    ``int` `MAX = ``100``; ` `     `  `    ``// Returns count of row wise same elements  ` `    ``// in two diagonals of mat[n][n] ` `    ``static` `int` `countCommon(``int` `mat[][], ``int` `n) ` `    ``{ ` `        ``int` `res = ``0``; ` `        ``for` `(``int` `i = ``0``; i < n; i++) ` `            ``if` `(mat[i][i] == mat[i][n - i - ``1``]) ` `                ``res++; ` `        ``return` `res; ` `    ``} ` ` `  `    ``// Driver Code ` `    ``public` `static` `void` `main(String args[])``throws` `IOException ` `    ``{ ` `        ``int` `mat[][] = {{``1``, ``2``, ``3``},  ` `                       ``{``4``, ``5``, ``6``}, ` `                       ``{``7``, ``8``, ``9``}}; ` `        ``System.out.println(countCommon(mat, ``3``)); ` `    ``} ` `} ` ` `  `// This code is contributed by Anshika Goyal. `

## Python3

 `# Python3 program to find common  ` `# elements in two diagonals. ` ` `  `Max` `=` `100` ` `  `# Returns count of row wise same ` `# elements in two diagonals of ` `# mat[n][n] ` `def` `countCommon(mat, n): ` `    ``res ``=` `0` `     `  `    ``for` `i ``in` `range``(n): ` `         `  `        ``if` `mat[i][i] ``=``=` `mat[i][n``-``i``-``1``] : ` `            ``res ``=` `res ``+` `1` `    ``return` `res      ` ` `  `# Driver Code ` `mat ``=` `[[``1``, ``2``, ``3``], ` `       ``[``4``, ``5``, ``6``], ` `       ``[``7``, ``8``, ``9``]] ` ` `  `print``(countCommon(mat, ``3``)) ` ` `  `# This code is contributed by Anant Agarwal. `

## C#

 `// C# program to find common  ` `// elements in two diagonals. ` `using` `System; ` ` `  `class` `GFG { ` `     `  `    ``// Returns count of row wise same ` `    ``// elements in two diagonals of ` `    ``// mat[n][n] ` `    ``static` `int` `countCommon(``int` `[,]mat, ``int` `n) ` `    ``{ ` `        ``int` `res = 0; ` `         `  `        ``for` `(``int` `i = 0; i < n; i++) ` `            ``if` `(mat[i,i] == mat[i,n - i - 1]) ` `                ``res++; ` `                 `  `        ``return` `res; ` `    ``} ` ` `  `    ``// Driver Code ` `    ``public` `static` `void` `Main() ` `    ``{ ` `        ``int` `[,]mat = {{1, 2, 3},  ` `                      ``{4, 5, 6}, ` `                      ``{7, 8, 9}}; ` `        ``Console.WriteLine(countCommon(mat, 3)); ` `    ``} ` `} ` ` `  `// This code is contributed by vt_m. `

## PHP

 ` `

Output :

```  1
```

This article is contributed by Himanshu Ranjan. If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

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.

My Personal Notes arrow_drop_up

Improved By : vt_m, jit_t

Article Tags :
Practice Tags :

1

Please write to us at contribute@geeksforgeeks.org to report any issue with the above content.