Featured image of post 1572. 矩阵对角线元素的和

1572. 矩阵对角线元素的和

题目描述

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

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

示例  1:

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

示例  2:

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

示例 3:

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

提示:

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

解法一:枚举

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
func diagonalSum(mat [][]int) int {
    n := len(mat)
    ans := 0
    j := n - 1
    for i := 0; i < n; i++ {
        ans += mat[i][i] + mat[i][j]
        j--
    }
    ans -= mat[n/2][n/2] * (n & 1)
    return ans
}
Licensed under CC BY-NC-SA 4.0
最后更新于 2023/08/11 08:46:08
comments powered by Disqus
Built with Hugo
主题 StackJimmy 设计