每日一题——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);
};

消耗时间和内存情况:

相关推荐
知识浅谈5 小时前
DeepSeek V4 和 GPT-5.5 在同一天发布了??我也很懵,但对比完我悟了
算法
DeepModel6 小时前
通俗易懂讲透 Q-Learning:从零学会强化学习核心算法
人工智能·学习·算法·机器学习
田梓燊6 小时前
力扣:19.删除链表的倒数第 N 个结点
算法·leetcode·链表
猫3286 小时前
v-cloak
前端·javascript·vue.js
AC赳赳老秦6 小时前
OpenClaw二次开发实战:编写专属办公自动化技能,适配个性化需求
linux·javascript·人工智能·python·django·测试用例·openclaw
旷世奇才李先生6 小时前
Vue 3\+Vite\+Pinia实战:企业级前端项目架构设计
前端·javascript·vue.js
Ulyanov7 小时前
《PySide6 GUI开发指南:QML核心与实践》 第二篇:QML语法精要——构建声明式UI的基础
java·开发语言·javascript·python·ui·gui·雷达电子对抗系统仿真
聚美智数7 小时前
企业实际控制人查询-公司实控人查询
android·java·javascript
简简单单做算法7 小时前
基于GA遗传优化双BP神经网络的时间序列预测算法matlab仿真
神经网络·算法·matlab·时间序列预测·双bp神经网络
guygg888 小时前
利用遗传算法解决列车优化运行问题的MATLAB实现
开发语言·算法·matlab