每日一题——LeetCode1572.矩阵对角线元素的和

方法一 遍历矩阵

如果矩阵中某个位置(x,y)处于对角线上,那么这个位置必定满足:

x=y 或 x+y = len-1 (len为矩阵长度)

javascript 复制代码
var diagonalSum = function(mat) {
    let len = mat.length;
    let sum = 0;
    for (let i = 0; i < len; i++) {
        for (let j = 0; j < len; j++) {
            if (i == j || i + j == len - 1) {
                sum += mat[i][j];
            }
        }
    }
    return sum;
};

消耗时间和内存情况:

方法二 枚举对角线元素:

逐行遍历,记当前行号为i,每一行的对角线元素为(i,i)和(i,len-i-1)

如果len为奇数则对角线交点会被计算两次,需要减掉一次

用len&1,如果len为奇数结果为1,len为偶数结果为0

javascript 复制代码
var diagonalSum = function(mat) {
    let len = mat.length, mid = Math.floor(len / 2);
    let sum = 0;
    for (let i = 0; i < len; ++i) {
        sum += mat[i][i] + mat[i][len - 1 - i];
    }
    return sum - mat[mid][mid] * (len & 1);
};

消耗时间和内存情况:

相关推荐
风吹乱了我的头发~42 分钟前
Day52:2026年3月20日打卡
算法
2401_831824965 小时前
基于C++的区块链实现
开发语言·c++·算法
We་ct5 小时前
LeetCode 918. 环形子数组的最大和:两种解法详解
前端·数据结构·算法·leetcode·typescript·动态规划·取反
愣头不青5 小时前
238.除了自身以外数组的乘积
数据结构·算法
qq_406176146 小时前
深入浅出 Pinia:Vue3 时代的状态管理新选择
javascript·vue.js·ecmascript
人工智能AI酱6 小时前
【AI深究】逻辑回归(Logistic Regression)全网最详细全流程详解与案例(附大量Python代码演示)| 数学原理、案例流程、代码演示及结果解读 | 决策边界、正则化、优缺点及工程建议
人工智能·python·算法·机器学习·ai·逻辑回归·正则化
WangLanguager6 小时前
逻辑回归(Logistic Regression)的详细介绍及Python代码示例
python·算法·逻辑回归
m0_518019486 小时前
C++与机器学习框架
开发语言·c++·算法
一段佳话^cyx6 小时前
详解逻辑回归(Logistic Regression):原理、推导、实现与实战
大数据·算法·机器学习·逻辑回归
qq_417695056 小时前
C++中的代理模式高级应用
开发语言·c++·算法