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

For example, the square matrix  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 |15-17|=2.

For this problem, we need to use ‘2D list’ in Java.

ArrayList<ArrayList<Integer>> arr = new ArrayList<ArrayList<Integer>>();

After initialize 2D list, we should store memory by default at each nth rows.

arr.add(new ArrayList<Integer>());
arr.get(0).add(0,1);
arr.get(0).add(1,2);
arr.get(0).add(2,3);

//[[1,2,3]]
import java.util.ArrayList;

/**
 * main
 */
public class main {

    public static void main(String[] args) {
        // Create 2D ArrayList
        ArrayList<ArrayList<Integer>> arr = new ArrayList<ArrayList<Integer>>();
        
        // Allocating space to 0th row with the help of 'new' keyword
        // At 0th row, 0 gets stored in memory by default
        arr.add(new ArrayList<Integer>());
        // At 0th row, modifing the default value
        arr.get(0).add(0,1);
        arr.get(0).add(1,2);
        arr.get(0).add(2,3);
        
        arr.add(new ArrayList<Integer>());
        arr.get(1).add(0,4);
        arr.get(1).add(1,5);
        arr.get(1).add(2,6);
        
        arr.add(new ArrayList<Integer>());
        arr.get(2).add(0,9);
        arr.get(2).add(1,8);
        arr.get(2).add(2,9);

        // print 2D list arr
        System.out.println(arr);
        
        // // print sepecific index of 2D list
        // System.out.println(arr.get(0).get(0));

        // initialize diagonals
        int sum1 = 0;
        int sum2 = 0;

        for(int i = 0; i<arr.size();i++){
            for(int j = 0; j<arr.get(i).size();j++){
                if (i==j){
                    sum1 = sum1 + arr.get(i).get(j);
                }
            }
        }
        for(int i = 0; i<arr.size();i++){
            for(int j = 0; j<arr.get(i).size();j++){
                if (i+j==arr.size()-1){
                    sum2 = sum2 + arr.get(i).get(j);
                }
            }
        }
        // Get a absolute difference between sums
        int result = Math.abs(sum1-sum2);

        System.out.println(sum1);
        System.out.println(sum2);
        System.out.println(result);

    }
}

References

Diagonal Difference | HackerRank

2D Array List in Java