Leetcode矩阵

Leetcode.1572 矩阵对角线元素的和

解题思路:

使用一个row变量来记录层数,在循环中使用一个l变量记录左边到右边的值,使用一个r变量记录右边到左边的值,使用width变量记录矩阵的宽度

如图所示,可以通过改变row,l ,r来遍历两个对角线,当l和r相等时,那么就代表走到了两个对角线相交的位置,由于加了两便,所以直接减掉一次就好了,然后就可以完美得到结果

AC代码:

cpp 复制代码
class Solution {
public:
    int diagonalSum(vector<vector<int>>& mat) {
        int width=mat[0].size();
        int ans=0;
        int row=0;
        for(int l=0,r=width-1;l<width && r>=0;l++,r--){
            if(l==r) ans-=mat[row][l];
            ans+=mat[row][l];
            ans+=mat[row++][r];
        }
        return ans;
    }
};
相关推荐
要加油哦~2 小时前
算法 | 整理数据结构 | 算法题中,JS 容器的选择
前端·javascript·算法
燃于AC之乐5 小时前
我的算法修炼之路--4 ———我和算法的爱恨情仇
算法·前缀和·贪心算法·背包问题·洛谷
MM_MS10 小时前
Halcon变量控制类型、数据类型转换、字符串格式化、元组操作
开发语言·人工智能·深度学习·算法·目标检测·计算机视觉·视觉检测
独自破碎E11 小时前
【二分法】寻找峰值
算法
mit6.82411 小时前
位运算|拆分贪心
算法
ghie909012 小时前
基于MATLAB的TLBO算法优化实现与改进
开发语言·算法·matlab
恋爱绝缘体112 小时前
2020重学C++重构你的C++知识体系
java·开发语言·c++·算法·junit
wuk99812 小时前
VSC优化算法MATLAB实现
开发语言·算法·matlab
Z1Jxxx12 小时前
加密算法加密算法
开发语言·c++·算法