-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathDiagonalSum.java
More file actions
33 lines (30 loc) · 1006 Bytes
/
DiagonalSum.java
File metadata and controls
33 lines (30 loc) · 1006 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
package ArrayBasedProblems;
public class DiagonalSum {
public static void main(String[] args) {
int[][] matrix = { { 1, 2, 3 }, { 4, 5, 6 }, { 7, 8, 9 } };
System.out.println("Diagonal sum: " + diagonalSum(matrix));
}
public static int diagonalSum(int[][] matrix) { // O(n) time and O(1) space
int sum = 0;
for (int i = 0; i < matrix.length; i++) {
sum += matrix[i][i];
if (i != matrix.length - i - 1) {
sum += matrix[i][matrix.length - i - 1];
}
}
return sum;
}
public int bruceForce(int[][] mat) { // O(n^2) time and O(1) space
int sum = 0;
int col = mat[0].length-1;
for(int i =0;i<mat.length;i++) {
for(int j = 0;j<mat[0].length;j++) {
if(i==j || j==(col-i)){
System.out.println(mat[i][j]);
sum += mat[i][j];
}
}
}
return sum;
}
}