Skip to content
Related Articles

Related Articles

Javascript Program to Find difference between sums of two diagonals

View Discussion
Improve Article
Save Article
Like Article
  • Last Updated : 31 May, 2022

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 : 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: 
 

Javascript




<script>
 
// Javascript Code for Find difference between sums
// of two diagonals
 
function difference(arr,n)
    {
        // Initialize sums of diagonals
        let d1 = 0, d2 = 0;
     
        for (let i = 0; i < n; i++)
        {
            for (let j = 0; j < n; j++)
            {
                // finding sum of primary diagonal
                if (i == j)
                    d1 += arr[i][j];
     
                // finding sum of secondary diagonal
                if (i == n - j - 1)
                    d2 += arr[i][j];
            }
        }
     
        // Absolute difference of the sums
        // across the diagonals
        return Math.abs(d1 - d2);
    }
     
    /* Driver program to test above function */
     
        let n = 3;
         
        let arr =
        [
            [11, 2, 4],
            [4 , 5, 6],
            [10, 8, -12]
        ];
     
        document.write(difference(arr, n));
     
// This code is contributed Bobby
 
</script>

Output:  

15

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.
We can optimize above solution to work in O(n) using the patterns present in indexes of cells. 
 

Javascript




<script>
// JAVA SCRIPT  Code for Find difference between sums
// of two diagonals
 
function difference(arr,n)
    {
     
        // Initialize sums of diagonals
        let d1 = 0, d2 = 0;
     
        for (let i = 0; i < n; i++)
        {
            d1 += arr[i][i];
            d2 += arr[i][n-i-1];
        }
     
        // Absolute difference of the sums
        // across the diagonals
        return Math.abs(d1 - d2);
    }
     
    /* Driver program to test above function */
     
        let n = 3;       
        let arr = [[11, 2, 4],
            [4 , 5, 6],
            [10, 8, -12]];
     
        document.write(difference(arr, n));
         
 
// This code is contributed by sravan kumar Gottumukkala
</script>

Output:  

15

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 Find difference between sums of two diagonals for more details!


My Personal Notes arrow_drop_up
Recommended Articles
Page :

Start Your Coding Journey Now!