平方矩阵的对角线差

问题描述 投票:0回答:1

我正在尝试一些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.comchallengesdiagonal-differenceproblem

*请注意,它是用C++语言编写的。

c++ arrays matrix diagonal
1个回答
1
投票

你正在使用 d1d2 循环中未初始化,这将调用未定义的行为。你需要像这样初始化它们。

int d1 = 0, d2 = 0, i = 0;

请注意,如果你尽可能多地开启警告, 编译器会警告你这些错误。

© www.soinside.com 2019 - 2024. All rights reserved.