![]() |
VOOZH | about |
For a given 2D square matrix of size N*N, our task is to find the sum of elements in the Principal and Secondary diagonals.
For example, analyze the following 4 × 4 input matrix.
m00 m01 m02 m03
m10 m11 m12 m13
m20 m21 m22 m23
m30 m31 m32 m33
Basic Input/Output:
Input 1: 6 7 3 4
8 9 2 1
1 2 9 6
6 5 7 2
Output 1: Principal Diagonal: 26
Secondary Diagonal: 14Input 2: 2 2 2
1 1 1
3 3 3
Output 2: Principal Diagonal: 6
Secondary Diagonal: 6
Understanding Diagonals in a Square Matrix:
We are going to use nested loops to iterate over the elements in the matrix and going to check if it belongs to the principal or secondary diagonal based on the condition.
Example: Below is the naive approach for finding the sum of diagonals of a matrix.
Sum of Principal Diagonal:35 Sum of Secondary Diagonal:58
Time complexity: O(N2)
Auxiliary space: O(1)
Let's now discuss the efficient approach in order to solve this problem.
The idea to find the sum of values of principal diagonal is to iterate to N and use the value of matrix[row][row] for the summation of principal diagonal and to find the sum of values of secondary diagonal is to use the value of matrix[row][N - (row + 1)] for summation.
Example: Below is the efficient approach for finding the sum of diagonals of a matrix.
Sum of Principal Diagonal:35 Sum of Secondary Diagonal:58
Time complexity: O(N)
Auxiliary space: O(1)