有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

对角线差分算法在Hackerrank中使用Java 7

我是hackerrank的新手来解决这个算法问题Diagonal difference,我已经想出了解决方案,但它显示了运行时错误,谁能告诉我写的哪部分是错误的,谢谢

 /*
 * Complete the diagonalDifference function below.
 */
static int diagonalDifference(int[][] a) {
    /*
     * Write your code here.
     */
    int sum1=0;
    int sum2=0;
    int n = a[0].length;
    for(int i=0; i<n; i++){
    sum1 += a[i][i];
    sum2 += a[n-i][i];
    }
    return Math.abs(sum1-sum2);
}

共 (1) 个答案

  1. # 1 楼答案

    问题是这行:sum2 += a[n-i][i];

    对于i=0,它将是a[n][0],索引位于0 to n-1之间;因此会导致运行时错误