-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathdiag-sum.js
More file actions
40 lines (33 loc) · 972 Bytes
/
diag-sum.js
File metadata and controls
40 lines (33 loc) · 972 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
34
35
36
37
38
39
40
// Given a square matrix mat, return the sum of the matrix diagonals.
// Only include the sum of all the elements on the primary diagonal and all the elements on the secondary diagonal that are not part of the primary diagonal.
// Example 1:
// Input: mat = [[1,2,3],
// [4,5,6],
// [7,8,9]]
// Output: 25
// Explanation: Diagonals sum: 1 + 5 + 9 + 3 + 7 = 25
// Notice that element mat[1][1] = 5 is counted only once.
// Example 2:
// Input: mat = [[1,1,1,1],
// [1,1,1,1],
// [1,1,1,1],
// [1,1,1,1]]
// Output: 8
// Example 3:
// Input: mat = [[5]]
// Output: 5
// my solution
var diagonalSum = function(mat) {
let sum = 0;
const n = mat.length;
for (let i = 0; i < n; i++){
sum+= mat[i][i]
}
for (let i = 0; i < n; i++){
sum += mat[i][n - 1 - i]
}
if (n % 2 === 1){
sum -= mat[Math.floor(n / 2)][Math.floor(n / 2)]
}
return sum
};