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

消耗时间和内存情况:

相关推荐
烛衔溟1 分钟前
TypeScript 基础类型(上):string、number、boolean 与类型注解
javascript·typescript·前端开发·类型注解
A923A2 分钟前
【洛谷刷题 | 第九天】
算法·二分·洛谷
向上的车轮3 分钟前
TypeScript 一日速通指南:TypeScript可以做全栈开发吗?
前端·javascript·typescript
旖-旎4 分钟前
位运算(只出现一次的数字|||)(5)
c++·算法·leetcode·位运算
心.c4 分钟前
从输入 URL 到页面展示的完整过程
前端·javascript·vue.js·js
AIpanda8887 分钟前
数字员工是什么?熊猫智汇在提高销售转化率中的作用有哪些?
算法
源码之家9 分钟前
计算机毕业设计:基于Python的美食数据采集可视化系统 Django框架 Scrapy爬虫 可视化 数据分析 大数据 机器学习 食物 食品(建议收藏)✅
python·算法·机器学习·信息可视化·课程设计
简简单单做算法10 分钟前
基于Q-Learning强化学习的小车倒立摆平衡控制系统matlab性能仿真
算法·matlab·强化学习·qlearning·小车倒立摆平衡控制
Book思议-11 分钟前
【数据结构】循环与递归:C 语言实现求和与斐波那契数列的两种思路
数据结构·算法·循环与递归
Mr_Xuhhh13 分钟前
LeetCode 热题 100 刷题笔记:从数组到字符串的经典解法(续)
java·数据结构·算法