对角差异使用Hackerrank中的Java 7

时间:2018-04-13 09:07:28

标签: java algorithm

我是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);
}

3 个答案:

答案 0 :(得分:0)

问题在于这一行:sum2 += a[n-i][i];

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

答案 1 :(得分:0)

你的问题的答案, moves在这里i = 0;所以你试图访问一个不在数组中的索引。它应该是sum2 += a[n-i][i];

以下是我在java 8中的表现。您将能够理解它并且与java 7非常相似。

sum2 += a[n-i-1][i]

答案 2 :(得分:0)

将sum2 + = a [n-i] [i]替换为sum2 + = a [n-i-1] [i]。它将解决您的问题。

有关详细说明,您可以查看以下链接-

https://youtu.be/f6bTIsj9ne8

有很多站点和git hub存储库,您可以在其中找到针对大多数问题的hackerRank解决方案。

但是我建议您使用https://github.com/Java-aid/Hack...。在这里,我可能会有偏见,但请相信我,您会发现此存储库很有用。

在此存储库中,我还将添加视频教程,您将无法在Internet上的任何git-hub存储库中找到该视频教程。

这是示例教程-https://youtu.be/gDltV7pJw7A

它将教您解决hackerrank楼梯问题的惊人方法。请观看完整的教程,以了解解决此问题的棘手方法。

在这里,我的目标不仅是提供解决方案,而且是解决问题的技能。建议您阅读视频教程,这将提高您的逻辑能力。

如果您喜欢我的作品,请不要忘记与他人分享您的反馈。 :)