分析:
找了一个小规律
首先对角线上的数是从第一行到最后一行按顺序的
在每一行上下标逐渐加1,最后总次数是矩阵的长度
最重要的是,两个对角线是对称的
也就是当取前面的第一个数时,后面对角线就是-1;前面取第二个时,后面就是-2
然后有个细节,当行数为奇数时需要减去一个正中间的数,重复了
然后写代码
代码:
1 class Solution(object): 2 def diagonalSum(self, mat): 3 """ 4 :type mat: List[List[int]] 5 :rtype: int 6 """ 7 n=len(mat) 8 sums=0 9 for i in range(n): 10 x=i+1 11 sums=sums+mat[i][i]+mat[i][-x] 12 a=n-1 13 b=a//2 14 c=b+1 15 if n%2!=0: 16 sums=sums-mat[c-1][c-1] 17 return sums 18 else: 19 return sums
标签:return,mat,矩阵,sums,对角线,1572,List From: https://www.cnblogs.com/ooooopppp/p/17363283.html