# Find difference between sums of two diagonals

For example, the square matrix is shown below:

1 2 3
4 5 6
9 8 9  

The left-to-right diagonal = . The right to left diagonal = . Their absolute difference is .

Function description

Complete the function in the editor below.

diagonalDifference takes the following parameter:

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

Return

  • int: the absolute diagonal difference

Sample Input
3 是長度

3
11 2 4
4 5 6
10 8 -12

# Solution

我覺得 hackerRank 其中一個難點是... 真的要很熟自己寫的語言
99% 的教程,都沒告訴你 list 是怎麼取數組裡的數組...

下面的 square matrix, 是存在一個 List<List<Integer>> arr 裡面。

a
11 2 4
4 5 6
10 8 -12

其實就是 [[11, 2, 4], [4, 5, 6], [10, 8, -12]]
如果用 arr.get(0) 會取出 [11, 2, 4]
如果想要再取 [11, 2, 4] 裡面的值的話,那就要再 get() 次。
比如我想取 2 這個值,那會是這樣: arr.get(0).get(1)

雖然很簡單!但是,真的好想知道,誰在刷題的時候,刷過題目會把 matrix 放在 list 裡啊 Q_Q。
HackerRank 一點細節都不放過。真的要把整個語言吃透了才能 crack hackerRank 的題... 但換個角度想想,練好了,基礎就很紮實了啦~ (安慰自己中...)

a
public static int diagonalDifference(List<List<Integer>> arr) {
    // Write your code here
        int lefttoRightSum = 0;
        int righttoLeftSum = 0;
        
      for (int i = 0; i < arr.size(); i++){
          lefttoRightSum += arr.get(i).get(i);
          righttoLeftSum += arr.get(arr.size() - i - 1).get(i);
      }
    return Math.abs(lefttoRightSum - righttoLeftSum);
    }
}