当前位置: 首页 > news >正文

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

方法一 遍历矩阵

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

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

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

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);
};

消耗时间和内存情况:

http://www.lryc.cn/news/310438.html

相关文章:

  • mysql 常用命令练习
  • QT6 libModbus 用于ModbusTcp客户端读写服务端
  • 飞桨(PaddlePaddle)Tensor使用教程
  • 数据结构c版(3)——排序算法
  • 《Spring Security 简易速速上手小册》第5章 高级认证技术(2024 最新版)
  • 【七】【SQL】自连接
  • C语言while 与 do...while 的区别?
  • RK3568平台开发系列讲解(基础篇)内核错误码
  • 点云从入门到精通技术详解100篇-基于点云网络和 PSO 优化算法的手势估计(续)
  • 设计模式(十一)策略模式
  • Java 计算某年份二月的天数
  • unity 数学 如何计算线和平面的交点
  • Mysql DATETIME与TIMESTAMP的区别
  • hadoop基础
  • 2024目前三种有效加速国内Github
  • 2024高频前端面试题 HTML 和 CSS 篇
  • LeetCode 100231.超过阈值的最少操作数 I
  • Pygame教程01:初识pygame游戏模块
  • HTML和CSS (前端共三篇)【详解】
  • Linux——进程控制(二)进程等待
  • 多线程导入excel
  • 设计模式(十五)状态模式
  • Java基于SpringBoot的在线文档管理系统的设计与实现论文
  • 突破编程_C++_STL教程( list 的高级特性)
  • Scratch 第十六课-弹珠台游戏
  • 对简单工厂模式、工厂方法模式的思考
  • 【详识JAVA语言】面向对象程序三大特性之二:继承
  • 【剑指offer--C/C++】JZ3 数组中重复的数字
  • 基于SpringBoot的在线拍卖系统设计与实现(源码)
  • 卢森堡比利时土耳其媒体宣发稿助力跨境出海推广新闻营销