方阵的对角线差

我正在尝试一些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循环中计算两个对角线,仅对矩阵具有的行/列进行迭代/重复(因为这是一个正方形矩阵)。

Link to the exercise: https://www.hackerrank.com/challenges/diagonal-difference/problem

*请注意,它在C ++中。