Javascript Program to Efficiently compute sums of diagonals of a matrix Last Updated : 10 Sep, 2024 Comments Improve Suggest changes Like Article Like Report Given a 2D square matrix, find the sum of elements in Principal and Secondary diagonals. For example, consider the following 4 X 4 input matrix.A00 A01 A02 A03A10 A11 A12 A13A20 A21 A22 A23A30 A31 A32 A33The 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.Examples : Input : 41 2 3 44 3 2 17 8 9 66 5 4 3Output :Principal Diagonal: 16Secondary Diagonal: 20Input :31 1 11 1 11 1 1Output :Principal Diagonal: 3Secondary Diagonal: 3Method 1 (O(n ^ 2) :In this method, we use two loops i.e. a loop for columns and a loop for rows and in the inner loop we check for the condition stated above: JavaScript // A simple Javascript program to find sum of diagonals const MAX = 100; function printDiagonalSums(mat, n) { let principal = 0, secondary = 0; for (let i = 0; i < n; i++) { for (let j = 0; j < n; j++) { // Condition for principal diagonal if (i == j) principal += mat[i][j]; // Condition for secondary diagonal if ((i + j) == (n - 1)) secondary += mat[i][j]; } } console.log("Principal Diagonal:" + principal); console.log("Secondary Diagonal:" + secondary); } // Driver code let a = [[1, 2, 3, 4], [5, 6, 7, 8], [1, 2, 3, 4], [5, 6, 7, 8]]; printDiagonalSums(a, 4); OutputPrincipal Diagonal:18 Secondary Diagonal:18 Complexity Analysis:Time Complexity: O(N*N), as we are using nested loops to traverse N*N times.Auxiliary Space: O(1), as we are not using any extra space.Method 2 (O(n) :In this method we use one loop i.e. a loop for calculating sum of both the principal and secondary diagonals: JavaScript // An efficient Javascript program to find // sum of diagonals function printDiagonalSums(mat, n) { let principal = 0, secondary = 0; for (let i = 0; i < n; i++) { principal += mat[i][i]; secondary += mat[i][n - i - 1]; } console.log("Principal Diagonal:" + principal); console.log("Secondary Diagonal:" + secondary); } // Driver code let a = [[1, 2, 3, 4], [5, 6, 7, 8], [1, 2, 3, 4], [5, 6, 7, 8]]; printDiagonalSums(a, 4); // This code is contributed Bobby OutputPrincipal Diagonal:18 Secondary Diagonal:18 Complexity Analysis:Time Complexity: O(N), as we are using a loop to traverse N times.Auxiliary Space: O(1), as we are not using any extra space.Please refer complete article on Efficiently compute sums of diagonals of a matrix for more details! Comment More infoAdvertise with us Next Article Javascript Program to Efficiently compute sums of diagonals of a matrix K kartik Follow Improve Article Tags : Matrix JavaScript Web Technologies DSA school-programming CBSE - Class 11 +2 More Practice Tags : Matrix Similar Reads Efficiently compute sums of diagonals of a matrix Given a 2D square matrix, find the sum of elements in Principal and Secondary diagonals. For example, 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 10 min read Javascript Program to Find difference between sums of two diagonals Given a matrix of n X n. The task is to calculate the absolute difference between the sums of its diagonal.Examples: Input : mat[][] = 11 2 4 4 5 6 10 8 -12 Output : 15Sum of primary diagonal = 11 + 5 + (-12) = 4.Sum of primary diagonal = 4 + 5 + 10 = 19.Difference = |19 - 4| = 15.Input : mat[][] = 3 min read Program to convert given Matrix to a Diagonal Matrix Given a N*N matrix. The task is to convert the matrix to a diagonal matrix. That is to change the values of the non-diagonal elements of a matrix to 0.Diagonal-Matrix: A matrix is called a Diagonal Matrix if all the non-diagonal elements of the matrix are zero.Examples: Input : mat[][] = {{ 2, 1, 7 8 min read Javascript Program to Maximize sum of diagonal of a matrix by rotating all rows or all columns Given a square matrix, mat[][] of dimensions N * N, the task is find the maximum sum of diagonal elements possible from the given matrix by rotating either all the rows or all the columns of the matrix by a positive integer. Examples: Input: mat[][] = { { 1, 1, 2 }, { 2, 1, 2 }, { 1, 2, 2 } }Output: 3 min read Javascript Program for Diagonally Dominant Matrix In mathematics, a square matrix is said to be diagonally dominant if for every row of the matrix, the magnitude of the diagonal entry in a row is larger than or equal to the sum of the magnitudes of all the other (non-diagonal) entries in that row. More precisely, the matrix A is diagonally dominant 2 min read Like