【发布时间】:2020-05-22 15:39:51
【问题描述】:
我正在尝试一些 HackerRank 挑战来打发一些时间,我遇到了一个简单的练习,我需要计算方阵对角线之和之间的绝对差。我真的相信这是一个简单的练习,应该花费很少的时间来完成,但我的算法似乎由于某种原因无法正常工作,因为我不断为我的输出获取随机值。
这是我的代码:
int diagonalDifference(vector<vector<int>> arr) {
int d1, d2, i = 0;
int size = arr.size();
for (i ; i < size ; i++){
d1 += arr[i][i];
d2 += arr[(size - 1) - i][i];
}
return abs(d1 - d2);}
我的算法简单直接,它在同一个 for 循环中计算两条对角线,该循环只对矩阵所具有的行/列进行迭代/重复(因为它是方阵)。
练习链接:https://www.hackerrank.com/challenges/diagonal-difference/problem
*请注意,它是用 C++ 编写的。
【问题讨论】:
标签: c++ arrays matrix diagonal