Skip to content

Commit c6c38f8

Browse files
committedJul 26, 2021
feat: add solutions to lc problem: No.1572. Matrix Diagonal Sum
1 parent f255d95 commit c6c38f8

File tree

6 files changed

+127
-6
lines changed

6 files changed

+127
-6
lines changed
 

Diff for: ‎solution/1500-1599/1572.Matrix Diagonal Sum/README.md

+47-1
Original file line numberDiff line numberDiff line change
@@ -64,15 +64,61 @@
6464
<!-- 这里可写当前语言的特殊实现逻辑 -->
6565

6666
```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
6874
```
6975

7076
### **Java**
7177

7278
<!-- 这里可写当前语言的特殊实现逻辑 -->
7379

7480
```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+
```
75108
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+
}
76122
```
77123

78124
### **...**

Diff for: ‎solution/1500-1599/1572.Matrix Diagonal Sum/README_EN.md

+47-1
Original file line numberDiff line numberDiff line change
@@ -54,13 +54,59 @@ Notice that element mat[1][1] = 5 is counted only once.
5454
### **Python3**
5555

5656
```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
5864
```
5965

6066
### **Java**
6167

6268
```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+
```
6396
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+
}
64110
```
65111

66112
### **...**
+11
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
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+
};
+10
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
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+
}
+5-4
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,10 @@
11
class Solution {
22
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]);
67
}
7-
return n % 2 == 0 ? sum : sum - mat[mid][mid];
8+
return res;
89
}
910
}
+7
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
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

0 commit comments

Comments
 (0)