我不知道如何访问2DArrayList
中的元素。我需要找到2DArrayList
中对角线的和。
List<List<Integer>> arr
public static int diagonalDifference(List<List<Integer>> arr) {
int size = arr.size();
int add1=0;
int add2=0;
for(int i=0 ; i < size ; i++){
add1 = add1+ arr.get(i).get(i);
add2 = add2+ arr.get(i).get(size -i-1);
}
int absoluteValue =Math.abs( add1 - add2);
return absoluteValue;
}
我看到您在问题中使用了对角线。矩阵有两条对角线,前导对角线( 反对角线假设你的矩阵,二维数组,或者二维数组,不管你叫什么,都是 上面的代码很容易理解。如果您真的想要对角线之和,您可以将这两个变量相加。 但是,您应该检查(和
i * i
矩阵,你可以在一个循环中计算:int leadingDiagonalSum = 0, antiDiagonalSum = 0;
int size = arr.size();
for (int i = 0; i < size; i++) {
leadingDiagonalSum += arr.get(i).get(i);
antiDiagonalSum += arr.get(i).get(size - i - 1);
}
size
,如果它是奇数,您应该在和之后减去中心元素一次
int diagnolSum = 0;
for (int i = 0; i < arr.size(); i++) {
diagnolSum += arr.get(i).get(i);
}