java - 如何求矩阵中次对角线的总和(JAVA)

标签 java arrays

我试图找到矩阵中次对角线的总和,但我的代码只显示矩阵中的第一个数字。有什么办法可以解决吗?

//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/

相关文章:

java - 无法为应用程序类com.sun.jersey.api.core.WebAppResourceConfig添加Jersey servlet,因为未在其上设置ApplicationPath批注

java - Selenium 测试未使用 testng 在网格中并行运行

c++ - 在 C++ 中处理数组的问题

javascript - 合并 JavaScript 数组中的重复值

java - 为什么binarysearch方法将负返回值减1

java - Spring转换器、 validator 和DataBinder : how to handle multivalued bean fields individually?

python - 你如何将 numpy 数组中的图像集合 reshape 为一个大图像?

c++ - 两个数组是否相等函数c++

Java - While Loop不断重复披萨程序

javascript - 在angularjs中的另一个数组中调用json数组