Leetcode_1572. 矩阵对角线元素的和

1572. 矩阵对角线元素的和

    • 题目描述
    • 题意解析
    • 思路分析
    • 代码

题目描述

Leetcode_1572. 矩阵对角线元素的和_第1张图片

题意解析

求数组两个对角线的数值加和,每个数只计算一边。

思路分析

如果都是从第一行开始加和的话,主对角线是行号和列号每次加1,副对角线是行号每次加1,列号每次减1。要注意对于数组大小n的奇偶性判定,奇数时会将中间元素加两边,所以最终要减去。

代码

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

你可能感兴趣的:(Leetcode题解,leetcode,矩阵,算法)