我不知道如何访问二维ArrayList
中的元素。我需要找到二维ArrayList
对角线上所有元素的和。
List<List<Integer>> arr
我不知道如何访问二维ArrayList
中的元素。我需要找到二维ArrayList
对角线上所有元素的和。
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;
}
我看到你在问题中使用了对角线。矩阵有两个对角线,一个是主对角线(\
),另一个是副对角线(/
)。
假设你的矩阵,即2D数组或2D ArrayList,是一个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);
}
int diagnolSum = 0;
for (int i = 0; i < arr.size(); i++) {
diagnolSum += arr.get(i).get(i);
}
value = list.get(i).get(i);
- Stephen C