Skip to content

Commit 5a244fc

Browse files
authored
Merge pull request #3 from AE-Hertz/AE-Hertz-patch-1
feat: add solutions to lc project No. 0840
2 parents 56fbe9e + a907914 commit 5a244fc

File tree

1 file changed

+40
-0
lines changed
  • solution/0800-0899/0840.Magic Squares In Grid

1 file changed

+40
-0
lines changed
Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
/**
2+
* @param {number[][]} grid
3+
* @return {number}
4+
*/
5+
var numMagicSquaresInside = function(grid) {
6+
const isMagic = (i, j) => {
7+
const s = new Set();
8+
for (let x = 0; x < 3; x++) {
9+
for (let y = 0; y < 3; y++) {
10+
const num = grid[i + x][j + y];
11+
if (num < 1 || num > 9 || s.has(num)) return false;
12+
s.add(num);
13+
}
14+
}
15+
16+
const rowSum = grid[i][j] + grid[i][j+1] + grid[i][j+2];
17+
if (rowSum !== grid[i+1][j] + grid[i+1][j+1] + grid[i+1][j+2]) return false;
18+
if (rowSum !== grid[i+2][j] + grid[i+2][j+1] + grid[i+2][j+2]) return false;
19+
20+
const colSum1 = grid[i][j] + grid[i+1][j] + grid[i+2][j];
21+
const colSum2 = grid[i][j+1] + grid[i+1][j+1] + grid[i+2][j+1];
22+
const colSum3 = grid[i][j+2] + grid[i+1][j+2] + grid[i+2][j+2];
23+
if (rowSum !== colSum1 || rowSum !== colSum2 || rowSum !== colSum3) return false;
24+
25+
if (rowSum !== grid[i][j] + grid[i+1][j+1] + grid[i+2][j+2]) return false;
26+
if (rowSum !== grid[i][j+2] + grid[i+1][j+1] + grid[i+2][j]) return false;
27+
28+
return true;
29+
};
30+
31+
let count = 0;
32+
33+
for (let i = 0; i < grid.length - 2; i++) {
34+
for (let j = 0; j < grid[0].length - 2; j++) {
35+
if (isMagic(i, j)) count++;
36+
}
37+
}
38+
39+
return count;
40+
};

0 commit comments

Comments
 (0)