·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
·解题思路:
1.如何判断说明元素属于对角线元素
——[i][i] 和[i][size - 1 - i]这两个元素一定在对角线上
2.如何获取对角线元素
3.size为奇数的时候需要减去一次中间元素
·解题代码:
class Solution(object):
def diagonalSum(self, mat):
size = len(mat)
ans = 0
for i in range(size):
ans += mat[i][i]
ans += mat[i][size - 1 - i]
if size % 2 != 0:
ans -= mat[int((size - 1) / 2)][int((size - 1) / 2)]
return ans