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.
- Create 2D ArrayList
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>());
- Modify the default value : use get(), and add().
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