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

【LeetCode每日一题】——1572.矩阵对角线元素的和

文章目录

  • 一【题目类别】
  • 二【题目难度】
  • 三【题目编号】
  • 四【题目描述】
  • 五【题目示例】
  • 六【题目提示】
  • 七【解题思路】
  • 八【时间频度】
  • 九【代码实现】
  • 十【提交结果】

一【题目类别】

  • 矩阵

二【题目难度】

  • 简单

三【题目编号】

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

四【题目描述】

  • 给你一个正方形矩阵 mat,请你返回矩阵对角线元素的和。
  • 请你返回在矩阵主对角线上的元素和副对角线上且不在主对角线上元素的和。

五【题目示例】

  • 示例 1:

    • 在这里插入图片描述

    • 输入:mat = [[1,2,3],
                           [4,5,6],
                           [7,8,9]]

    • 输出:25

    • 解释:对角线的和为:1 + 5 + 9 + 3 + 7 = 25。请注意,元素 mat[1][1] = 5 只会被计算一次。

  • 示例 2:

    • 输入:mat = [[1,1,1,1],
                            [1,1,1,1],
                            [1,1,1,1],
                            [1,1,1,1]]
    • 输出:8
  • 示例 3:

    • 输入:mat = [[5]]
    • 输出:5

六【题目提示】

  • n = = m a t . l e n g t h = = m a t [ i ] . l e n g t h n == mat.length == mat[i].length n==mat.length==mat[i].length
  • 1 < = n < = 100 1 <= n <= 100 1<=n<=100
  • 1 < = m a t [ i ] [ j ] < = 100 1 <= mat[i][j] <= 100 1<=mat[i][j]<=100

七【解题思路】

  • 定义i遍历二维数组的行数,j遍历二维数组的列数
  • 如果i==j,说明是主对角线的元素
  • 如果i+j==n-1,说明是副对角线的元素
  • 采用||进行判断,这样就不会将主对角线和副对角线的元素多加一次,因为只遍历了一次数组
  • 然后将其求和,最后返回结果即可

八【时间频度】

  • 时间复杂度: O ( n 2 ) O(n^2) O(n2) n n n为传入的正方形数组的长度
  • 空间复杂度: O ( 1 ) O(1) O(1)

九【代码实现】

  1. Java语言版
class Solution {public int diagonalSum(int[][] mat) {int n = mat.length;int res = 0;for(int i = 0;i < n;i++){for(int j = 0;j < n;j++){if(i == j || i + j == n - 1){res += mat[i][j];}}}return res;}
}
  1. C语言版
int diagonalSum(int** mat, int matSize, int* matColSize)
{int n = matSize;int res = 0;for(int i = 0;i < n;i++){for(int j = 0;j < n;j++){if(i == j || i + j == n - 1){res += mat[i][j];}}}return res;
}
  1. Python语言版
class Solution:def diagonalSum(self, mat: List[List[int]]) -> int:n = len(mat)res = 0for i in range(0,n):for j in range(0,n):if i == j or i + j == n - 1:res += mat[i][j]return res
  1. C++语言版
class Solution {
public:int diagonalSum(vector<vector<int>>& mat) {int n = mat.size();int res = 0;for(int i = 0;i < n;i++){for(int j = 0;j < n;j++){if(i == j || i + j == n - 1){res += mat[i][j];}}}return res;}
};

十【提交结果】

  1. Java语言版
    在这里插入图片描述

  2. C语言版
    在这里插入图片描述

  3. Python语言版
    在这里插入图片描述

  4. C++语言版
    在这里插入图片描述

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

相关文章:

  • 牛客网Verilog刷题——VL55
  • python中数据可视化
  • DASCTF 2023 0X401七月暑期挑战赛web复现
  • go编译文件
  • Flowable-子流程-调用活动
  • java 并发
  • 【MySQL】DDL和DML
  • 使用python框架FastAPI
  • Vue实现leafletMap自定义绘制线段 并且删除指定的已绘制的点位
  • ChatGPT辅助写论文:提升效率与创造力的利器
  • 面试攻略,Java 基础面试 100 问(六)
  • 图解系列 DNS查找过程和DNS缓存
  • 《吐血整理》高级系列教程-吃透Fiddler抓包教程(21)-如何使用Fiddler生成Jmeter脚本-上篇
  • vim中出现复制不对齐-乱码问题
  • 华为OD机考真题--单词接龙--带答案
  • 排序进行曲-v3.0
  • 编辑列表操作时的一些思考,关于全量和增量操作
  • 【python】Python tkinter库实现重量单位转换器的GUI程序
  • CVPR2023新作:源数据集对迁移学习性能的影响以及相应的解决方案
  • 《TCP IP 网络编程》第十五章
  • 新特性解读 | MySQL 8.0 字段信息统计机制
  • 基于Java+Swing实现超级玛丽游戏
  • Day12-1-Webpack前端工程化开发
  • JUnit教程_编程入门自学教程_菜鸟教程-免费教程分享
  • Hive 安装介绍
  • npm ERR! code EPERM npm ERR! syscall unlink npm ERR!错误解决方法
  • redis 高级篇4 分布式锁
  • TPU-NNTC 编译部署LPRNet 车牌识别算法
  • 在线/开源GNSS处理软件/平台介绍
  • SpringBoot集成企业微信群聊机器人消息