File tree 6 files changed +127
-6
lines changed
solution/1500-1599/1572.Matrix Diagonal Sum
6 files changed +127
-6
lines changed Original file line number Diff line number Diff line change 64
64
<!-- 这里可写当前语言的特殊实现逻辑 -->
65
65
66
66
``` python
67
-
67
+ class Solution :
68
+ def diagonalSum (self , mat : List[List[int ]]) -> int :
69
+ n = len (mat)
70
+ res = 0
71
+ for i in range (n):
72
+ res += mat[i][i] + (0 if n - i - 1 == i else mat[i][n - i - 1 ])
73
+ return res
68
74
```
69
75
70
76
### ** Java**
71
77
72
78
<!-- 这里可写当前语言的特殊实现逻辑 -->
73
79
74
80
``` java
81
+ class Solution {
82
+ public int diagonalSum (int [][] mat ) {
83
+ int n = mat. length;
84
+ int res = 0 ;
85
+ for (int i = 0 ; i < n; ++ i) {
86
+ res += mat[i][i] + (n - i - 1 == i ? 0 : mat[i][n - i - 1 ]);
87
+ }
88
+ return res;
89
+ }
90
+ }
91
+ ```
92
+
93
+ ### ** C++**
94
+
95
+ ``` cpp
96
+ class Solution {
97
+ public:
98
+ int diagonalSum(vector<vector<int >>& mat) {
99
+ int n = mat.size();
100
+ int res = 0;
101
+ for (int i = 0; i < n; ++i) {
102
+ res += mat[ i] [ i ] + (n - i - 1 == i ? 0 : mat[ i] [ n - i - 1 ] );
103
+ }
104
+ return res;
105
+ }
106
+ };
107
+ ```
75
108
109
+ ### **Go**
110
+
111
+ ```go
112
+ func diagonalSum(mat [][]int) int {
113
+ n, res := len(mat), 0
114
+ for i := 0; i < n; i++ {
115
+ res += mat[i][i]
116
+ if n-i-1 != i {
117
+ res += mat[i][n-i-1]
118
+ }
119
+ }
120
+ return res
121
+ }
76
122
```
77
123
78
124
### ** ...**
Original file line number Diff line number Diff line change @@ -54,13 +54,59 @@ Notice that element mat[1][1] = 5 is counted only once.
54
54
### ** Python3**
55
55
56
56
``` python
57
-
57
+ class Solution :
58
+ def diagonalSum (self , mat : List[List[int ]]) -> int :
59
+ n = len (mat)
60
+ res = 0
61
+ for i in range (n):
62
+ res += mat[i][i] + (0 if n - i - 1 == i else mat[i][n - i - 1 ])
63
+ return res
58
64
```
59
65
60
66
### ** Java**
61
67
62
68
``` java
69
+ class Solution {
70
+ public int diagonalSum (int [][] mat ) {
71
+ int n = mat. length;
72
+ int res = 0 ;
73
+ for (int i = 0 ; i < n; ++ i) {
74
+ res += mat[i][i] + (n - i - 1 == i ? 0 : mat[i][n - i - 1 ]);
75
+ }
76
+ return res;
77
+ }
78
+ }
79
+ ```
80
+
81
+ ### ** C++**
82
+
83
+ ``` cpp
84
+ class Solution {
85
+ public:
86
+ int diagonalSum(vector<vector<int >>& mat) {
87
+ int n = mat.size();
88
+ int res = 0;
89
+ for (int i = 0; i < n; ++i) {
90
+ res += mat[ i] [ i ] + (n - i - 1 == i ? 0 : mat[ i] [ n - i - 1 ] );
91
+ }
92
+ return res;
93
+ }
94
+ };
95
+ ```
63
96
97
+ ### **Go**
98
+
99
+ ```go
100
+ func diagonalSum(mat [][]int) int {
101
+ n, res := len(mat), 0
102
+ for i := 0; i < n; i++ {
103
+ res += mat[i][i]
104
+ if n-i-1 != i {
105
+ res += mat[i][n-i-1]
106
+ }
107
+ }
108
+ return res
109
+ }
64
110
```
65
111
66
112
### ** ...**
Original file line number Diff line number Diff line change
1
+ class Solution {
2
+ public:
3
+ int diagonalSum (vector<vector<int >>& mat) {
4
+ int n = mat.size ();
5
+ int res = 0 ;
6
+ for (int i = 0 ; i < n; ++i) {
7
+ res += mat[i][i] + (n - i - 1 == i ? 0 : mat[i][n - i - 1 ]);
8
+ }
9
+ return res;
10
+ }
11
+ };
Original file line number Diff line number Diff line change
1
+ func diagonalSum (mat [][]int ) int {
2
+ n , res := len (mat ), 0
3
+ for i := 0 ; i < n ; i ++ {
4
+ res += mat [i ][i ]
5
+ if n - i - 1 != i {
6
+ res += mat [i ][n - i - 1 ]
7
+ }
8
+ }
9
+ return res
10
+ }
Original file line number Diff line number Diff line change 1
1
class Solution {
2
2
public int diagonalSum (int [][] mat ) {
3
- int sum = 0 , n = mat .length , mid = n >> 1 ;
4
- for (int i = 0 , j = n - 1 ; i < n ; i ++, j --) {
5
- sum += (mat [i ][i ] + mat [i ][j ]);
3
+ int n = mat .length ;
4
+ int res = 0 ;
5
+ for (int i = 0 ; i < n ; ++i ) {
6
+ res += mat [i ][i ] + (n - i - 1 == i ? 0 : mat [i ][n - i - 1 ]);
6
7
}
7
- return n % 2 == 0 ? sum : sum - mat [ mid ][ mid ] ;
8
+ return res ;
8
9
}
9
10
}
Original file line number Diff line number Diff line change
1
+ class Solution :
2
+ def diagonalSum (self , mat : List [List [int ]]) -> int :
3
+ n = len (mat )
4
+ res = 0
5
+ for i in range (n ):
6
+ res += mat [i ][i ] + (0 if n - i - 1 == i else mat [i ][n - i - 1 ])
7
+ return res
You can’t perform that action at this time.
0 commit comments