我试图找到矩阵中次对角线的总和,但我的代码只显示矩阵中的第一个数字。有什么办法可以解决吗?
//sum of minor diagonal in matrix
public static int minorDiagonal(int[][] array){
int k = 0, j = 0;
int sumMinD = 0;
k = array.length - 1;
for ( j = 0, k = 0; j <= array.length && k >= 0; j++, k--) {
sumMinD += array[j][k];
}
return sumMinD;
}
最佳答案
假设您有以下矩阵:
1 2 5
4 1 3
0 9 4
小对角线由 0 + 1 + 5 = 6 组成
次对角线的元素位于以下位置:[2][0]、[1][1] 和 [0][2]
您的代码是:
for ( j = 0, k = 0; j <= array.length && k >= 0; j++, k--) {
sumMinD += array[j][k];
}
你的k初始化为零并且你不断减少它,你会得到ArrayIndexOutOfBounds异常,将你的j更改为yourMatrix .length-1 使 j 在每次迭代时减少 j-- 和 k 增加 k++,你应该把它修好。
您的最终工作循环将是:
for ( j = array.length-1, k = 0; j >= 0; j--, k++) {
sumMinD += array[j][k];
}
关于java - 如何求矩阵中次对角线的总和(JAVA),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47665541/