自学内容网 自学内容网

LeetCode1572.矩阵对角线元素的和

题目链接:

1572. 矩阵对角线元素的和 - 力扣(LeetCode)

分析:最简单的模拟。

算法思路:定义一个res表示最终返回的值,遍历整个矩阵,取出对角线上的元素加在res上面,最后再判断矩阵的边长的值是否为偶数,如果为偶数则直接返回结果;如果为奇数则最中间的元素算了两遍,需要减去一次。

下面是参考代码:

class Solution {
public:
    int diagonalSum(vector<vector<int>>& mat) {
        int n=mat.size();//计算出矩阵的边长
        int res=0;//最终返回的结果
        for(int i=0;i<n;++i){//遍历 对每一行都取两个元素 对角线上的两个
            res+=mat[i][i];
            res+=mat[i][n-i-1]; 
        }
        return n%2==0?res:(res-mat[n/2][n/2]);//这里用了三元运算符 正好帮助大家回忆这里的知识点
        //如果是奇数行的矩阵则最中间的元素要减掉一次 偶数则直接返回
    }
};


原文地址:https://blog.csdn.net/weixin_60335028/article/details/138769744

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!