Given a matrix of n X n. The task is to calculate the absolute difference between the sums of its diagonal.
Input : mat = 11 2 4 4 5 6 10 8 -12 Output : 15 Sum of primary diagonal = 11 + 5 + (-12) = 4. Sum of primary diagonal = 4 + 5 + 10 = 19. Difference = |19 - 4| = 15. Input : mat = 10 2 4 5 Output : 7
Calculate the sums across the two diagonals of a square matrix. Along the first diagonal of the matrix, row index = column index i.e mat[i][j] lies on the first diagonal if i = j. Along the other diagonal, row index = n – 1 – column index i.e mat[i][j] lies on the second diagonal if i = n-1-j. By using two loops we traverse the entire matrix and calculate the sum across the diagonals of the matrix.
Below is the implementation of this approach:
Time complexity : O(n*n)
We can optimize above solution to work in O(n) using the patterns present in indexes of cells.
Time complexity : O(n)
Please refer complete article on Find difference between sums of two diagonals for more details!