[Solved] Given a square matrix, calculate the absolute difference between the sums of its diagonals. Optimize Solution

Given a square matrix, calculate the absolute difference between the sums of its diagonals.

For example, the square matrix arr  is shown below:

1 2 3
4 5 6
9 8 9  

The left-to-right diagonal 1+5+9= 15. The right to left diagonal 3+5+9= 17. Their absolute difference is 2.

Function description

Complete the diagonalDifference function in the editor below.

diagonalDifference takes the following parameter:

  • int arr[n][m]: an array of integers

Return

  • int: the absolute diagonal difference

Input Format

The first line contains a single integer, n, the number of rows and columns in the square matrix arr.
Each of the next n lines describes a row, arr[i][j], and consists of  space-separated integers .

Constraints

  • -100<=arr[i][j]<=100

Output Format

Return the absolute difference between the sums of the matrix’s two diagonals as a single integer.

Sample Input

3
11 2 4
4 5 6
10 8 -12

Sample Output

15

Explanation

The primary diagonal is:

11
   5
     -12

Sum across the primary diagonal: 11 + 5 – 12 = 4

The secondary diagonal is:

     4
   5
10

Sum across the secondary diagonal: 4 + 5 + 10 = 19
Difference: |4 – 19| = 15

Note: |x| is the absolute value of x

Solution

Approach 2: Using a single loop

  1. Initialize two variables sum and diff to 0.
  2. Traverse the array and add the elements of the primary diagonal to sum and the elements of the secondary diagonal to diff.
  3. Return the absolute difference of sum and diff.
public static int diagonalDifference(List<List<Integer>> arr) {
// Write your code here
    int sum = 0;
    int diff = 0;
    int n = arr.size();
    for(int i = 0; i < n; i++){
        sum += arr.get(i).get(i);
        diff += arr.get(i).get(n-i-1);
    }
    return Math.abs(sum-diff);
}

Happy Learning – If you require any further information, feel free to contact me.

Share your love
Saurav Hathi

Saurav Hathi

I'm currently studying Bachelor of Computer Science at Lovely Professional University in Punjab.

📌 Nodejs and Android 😎
📌 Java

Articles: 444

Leave a Reply

Your email address will not be published. Required fields are marked *