1572矩阵对角线元素的和

    科技2022-07-13  133

    题目描述: 给你一个正方形矩阵 mat,请你返回矩阵对角线元素的和。 请你返回在矩阵主对角线上的元素和副对角线上且不在主对角线上元素的和。

    示例 1: 输入:mat = [[1,2,3], [4,5,6], [7,8,9]] 输出:25 解释:对角线的和为:1 + 5 + 9 + 3 + 7 = 25 请注意,元素 mat[1][1] = 5 只会被计算一次。

    示例 2: 输入:mat = [[1,1,1,1], [1,1,1,1], [1,1,1,1], [1,1,1,1]] 输出:8

    示例 3: 输入:mat = [[5]] 输出:5

    提示: n == mat.length == mat[i].length 1 <= n <= 100 1 <= mat[i][j] <= 100

    方法1: 主要思路: (1)先将主对角线和副对角线上的所有元素相加; (2)根据矩阵的长度是否是奇数,处理中间重复相加的元素;

    class Solution { public: int diagonalSum(vector<vector<int>>& mat) { int len=mat.size(); int res=0; //累加矩阵主对角线和副对角线上的元素 for(int i=0;i<len;++i){ res+=mat[i][i]; res+=mat[i][len-i-1]; } //根据奇偶性,去除中间重复相加的元素 if(len&1){ res-=mat[len/2][len/2]; } return res; } };
    Processed: 0.014, SQL: 8