赞
踩
示例 1:

输入:mat = [[1,2,3],
[4,5,6],
[7,8,9]]
输出:25
解释:对角线的和为:1 + 5 + 9 + 3 + 7 = 25。请注意,元素 mat[1][1] = 5 只会被计算一次。
示例 2:
示例 3:
||进行判断,这样就不会将主对角线和副对角线的元素多加一次,因为只遍历了一次数组class Solution {
public int diagonalSum(int[][] mat) {
int n = mat.length;
int res = 0;
for(int i = 0;i < n;i++){
for(int j = 0;j < n;j++){
if(i == j || i + j == n - 1){
res += mat[i][j];
}
}
}
return res;
}
}
int diagonalSum(int** mat, int matSize, int* matColSize) { int n = matSize; int res = 0; for(int i = 0;i < n;i++) { for(int j = 0;j < n;j++) { if(i == j || i + j == n - 1) { res += mat[i][j]; } } } return res; }
class Solution:
def diagonalSum(self, mat: List[List[int]]) -> int:
n = len(mat)
res = 0
for i in range(0,n):
for j in range(0,n):
if i == j or i + j == n - 1:
res += mat[i][j]
return res
class Solution {
public:
int diagonalSum(vector<vector<int>>& mat) {
int n = mat.size();
int res = 0;
for(int i = 0;i < n;i++){
for(int j = 0;j < n;j++){
if(i == j || i + j == n - 1){
res += mat[i][j];
}
}
}
return res;
}
};
Java语言版

C语言版

C++语言版

Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。