• Leetcode1572. 矩阵对角线元素的和


    题意

    请你返回在矩阵主对角线上的元素和副对角线上且不在主对角线上元素的和。

    思路

    • 一开始理解错题意了,题目的意思是说要去掉的是主对角线和副对角线的交界点(最中间的元素,也就是矩阵的边长为奇数的时候才会有交界点)。
    • 而我以为是在副对角线中的元素如果在主对角线出现过就不计入总和。
    • 按照正确的理解就很简单啦,直接算就好了。

    代码

    class Solution {
    public:
        int diagonalSum(vector<vector<int>>& mat) {
            int len = mat.size();
            int ans = 0;
            for(int i=0;i<len;i++) {
                ans += mat[i][i];
            }//计算主对角线
            for(int i=0;i<len;i++) {
                ans += mat[i][len - i - 1];
            }//计算副对角线
            if(len & 1) {
                ans -= mat[len / 2][len / 2];
            }//如果边长为奇数,去掉其交界点
            return ans;
        }
    };
    
    如有转载,请注明出处QAQ
  • 相关阅读:
    luogu2253 好一个一中腰鼓!
    luogu2948 滑雪课
    luogu1556 幸福的路
    luogu1900 自我数
    luogu1632 点的移动
    luogu1999 高维正方体
    树状数组模板
    杜教筛
    [比赛|考试] 9月第一周的考试
    历年NOIP真题总结
  • 原文地址:https://www.cnblogs.com/MartinLwx/p/14311191.html
Copyright © 2020-2023  润新知