对角线差分算法在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 楼答案
问题是这行:
sum2 += a[n-i][i];
对于
i=0
,它将是a[n][0]
,索引位于0 to n-1
之间;因此会导致运行时错误