Skip to content

Commit 8d9d2d7

Browse files
solves matrix diagonal sum
1 parent 1cae44c commit 8d9d2d7

File tree

2 files changed

+27
-0
lines changed

2 files changed

+27
-0
lines changed

README.md

+1
Original file line numberDiff line numberDiff line change
@@ -393,3 +393,4 @@
393393
| 1556 | [Thousand Separator](https://leetcode.com/problems/thousand-separator) | [![Java](assets/java.png)](src/ThousandSeparator.java) | |
394394
| 1560 | [Most Visited Sector in a Circular Track](https://leetcode.com/problems/most-visited-sector-in-a-circular-track) | [![Java](assets/java.png)](src/MostVisitedSectorInACircularTrack.java) | |
395395
| 1566 | [Detect Pattern of Length M Repeated K or More Times](https://leetcode.com/problems/detect-pattern-of-length-m-repeated-k-or-more-times) | [![Java](assets/java.png)](src/DetectPatternOfLengthMRepeatedKOrMoreTimes.java) | |
396+
| 1572 | [Matrix Diagonal Sum](https://leetcode.com/problems/matrix-diagonal-sum) | [![Java](assets/java.png)](src/MatrixDiagonalSum.java) | |

src/MatrixDiagonalSum.java

+26
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
// https://leetcode.com/problems/matrix-diagonal-sum
2+
// T: O(N)
3+
// S: O(1)
4+
5+
public class MatrixDiagonalSum {
6+
public int diagonalSum(int[][] matrix) {
7+
return sumPrimaryDiagonal(matrix) + sumSecondaryDiagonal(matrix) -
8+
((matrix.length & 1) == 1 ? matrix[matrix.length / 2][matrix.length / 2] : 0);
9+
}
10+
11+
private int sumPrimaryDiagonal(int[][] matrix) {
12+
int sum = 0;
13+
for (int i = 0 ; i < matrix.length ; i++) {
14+
sum += matrix[i][i];
15+
}
16+
return sum;
17+
}
18+
19+
private int sumSecondaryDiagonal(int[][] matrix) {
20+
int sum = 0;
21+
for (int i = 0 ; i < matrix.length ; i++) {
22+
sum += matrix[i][matrix.length - 1 - i];
23+
}
24+
return sum;
25+
}
26+
}

0 commit comments

Comments
 (0)