Given a 2D square matrix, the task is to print the Principal and Secondary diagonals of this matrix in O(N) time complexity. For O(N2) time, please refer this article.
Input: 4 1 2 3 4 4 3 2 1 7 8 9 6 6 5 4 3 Output: Principal Diagonal: 1, 3, 9, 3 Secondary Diagonal: 4, 3, 8, 6 Input: 3 1 1 1 1 1 1 1 1 1 Output: Principal Diagonal: 1, 1, 1 Secondary Diagonal: 1, 1, 1
- Consider the following 4 X 4 input matrix.
A00 A01 A02 A03 A10 A11 A12 A13 A20 A21 A22 A23 A30 A31 A32 A33
- The primary diagonal is formed by the elements A00, A11, A22, A33.
Condition for Principal Diagonal:
The row-column condition is row = column.
- The secondary diagonal is formed by the elements A03, A12, A21, A30.
Condition for Secondary Diagonal:
The row-column condition is row = numberOfRows - column - 1.
- In this method, we use one loop i.e. a loop to find the diagonal elements as per below formula:
principal diagonal = matrix[i][i]; secondary diagonal = matrix[i][n - i - 1]; where 0 &leq i &leq n
Below is the implementation of the above approach:
Principal Diagonal: 1, 6, 3, 8, Secondary Diagonal: 4, 7, 2, 5,
- Maximum size square sub-matrix with all 1s
- Print a given matrix in spiral form
- Search in a row wise and column wise sorted matrix
- A Boolean Matrix Question
- Matrix Chain Multiplication | DP-8
- Print unique rows in a given boolean matrix
- Inplace (Fixed space) M x N size matrix transpose | Updated
- Maximum sum rectangle in a 2D matrix | DP-27
- Zigzag (or diagonal) traversal of Matrix
- Divide and Conquer | Set 5 (Strassen's Matrix Multiplication)
- Print all possible paths from top left to bottom right of a mXn matrix
- Count all possible paths from top left to bottom right of a mXn matrix
- Printing brackets in Matrix Chain Multiplication Problem
- Create a matrix with alternating rectangles of O and X
- Given an n x n square matrix, find sum of all sub-squares of size k x k
If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to email@example.com. See your article appearing on the GeeksforGeeks main page and help other Geeks.
Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.