0
点赞
收藏
分享

微信扫一扫

【力扣每日一题】1572. 矩阵对角线元素的和 & 8.11打卡

炽凤亮尧 2023-08-17 阅读 14

请添加图片描述

文章目录

题目

1572. 矩阵对角线元素的和

难度: 简单

描述:

给你一个正方形矩阵 mat,请你返回矩阵对角线元素的和。

请你返回在矩阵主对角线上的元素和副对角线上且不在主对角线上元素的和。

返回合并后的二叉树。

注意: 合并过程必须从两个树的根节点开始。

示例 1:

示例 2:

示例3:

提示:

  • -n == mat.length == mat[i].length
  • 1 <= n <= 100
  • 1 <= mat[i][j] <= 100

思路

时间复杂度分析:根据分析m和n的范围,可以使用暴力法两层for循环来解题 时间复杂度为O(n^2)
同时我们观察分析,可以求出对角线的和,因此时间复杂度可以降低到O(n)
空间复杂度: O(1)
解法思路:使用一层for循环来求出对角线的和,同时根据阶数的奇偶性,奇数的话需要减一次中间值,偶数的话不用

代码

class Solution {
    public int diagonalSum(int[][] mat) {
        int m = mat.length;
        int n = mat[0].length;
        int sum =0;
        for(int i = 0;i<m;i++){
            sum += mat[i][i];
        }
        for(int j =0;j<n;j++){
            sum += mat[j][n-j-1];
        
        if(n % 2 == 1){
            sum -= mat[n/2][m/2];
        }
        return sum;
    }
}
举报

相关推荐

0 条评论