题目链接:
1572. 矩阵对角线元素的和 - 力扣(LeetCode)
分析:最简单的模拟。
算法思路:定义一个res表示最终返回的值,遍历整个矩阵,取出对角线上的元素加在res上面,最后再判断矩阵的边长的值是否为偶数,如果为偶数则直接返回结果;如果为奇数则最中间的元素算了两遍,需要减去一次。
下面是参考代码:
- class Solution {
- public:
- int diagonalSum(vector
int >>& mat) { - int n=mat.size();//计算出矩阵的边长
- int res=0;//最终返回的结果
- for(int i=0;i
//遍历 对每一行都取两个元素 对角线上的两个 - res+=mat[i][i];
- res+=mat[i][n-i-1];
- }
- return n%2==0?res:(res-mat[n/2][n/2]);//这里用了三元运算符 正好帮助大家回忆这里的知识点
- //如果是奇数行的矩阵则最中间的元素要减掉一次 偶数则直接返回
- }
- };