@@ -13,33 +13,36 @@ public int numMagicSquaresInside(int[][] grid) {
1313 for (int j = 0 ; j < n - 2 ; j ++) {
1414 Set <Integer > set = new HashSet <>();
1515 int sum = grid [i ][j ] + grid [i ][j + 1 ] + grid [i ][j + 2 ];
16- if (sum == grid [i + 1 ][j ] + grid [i + 1 ][j + 1 ] + grid [i + 1 ][j + 2 ]
17- && sum == grid [i + 2 ][j ] + grid [i + 2 ][j + 1 ] + grid [i + 2 ][j + 2 ]
18-
19- && sum == grid [i ][j ] + grid [i + 1 ][j ] + grid [i + 2 ][j ]
20- && sum == grid [i ][j + 1 ] + grid [i + 1 ][j + 1 ] + grid [i + 2 ][j + 1 ]
21- && sum == grid [i ][j + 2 ] + grid [i + 1 ][j + 2 ] + grid [i + 2 ][j + 2 ]
22-
23- && sum == grid [i ][j ] + grid [i + 1 ][j + 1 ] + grid [i + 2 ][j + 2 ]
24- && sum == grid [i ][j + 2 ] + grid [i + 1 ][j + 1 ] + grid [i + 2 ][j ]
25-
26- && set .add (grid [i ][j ]) && isLegit (grid [i ][j ])
27- && set .add (grid [i ][j + 1 ]) && isLegit (grid [i ][j + 1 ])
28- && set .add (grid [i ][j + 2 ]) && isLegit (grid [i ][j + 2 ])
29- && set .add (grid [i + 1 ][j ]) && isLegit (grid [i + 1 ][j ])
30- && set .add (grid [i + 1 ][j + 1 ]) && isLegit (grid [i + 1 ][j + 1 ])
31- && set .add (grid [i + 1 ][j + 2 ]) && isLegit (grid [i + 1 ][j + 2 ])
32- && set .add (grid [i + 2 ][j ]) && isLegit (grid [i + 2 ][j ])
33- && set .add (grid [i + 2 ][j + 1 ]) && isLegit (grid [i + 2 ][j + 1 ])
34- && set .add (grid [i + 2 ][j + 2 ]) && isLegit (grid [i + 2 ][j + 2 ])
35- ) {
16+ if (isValid (grid , i , j , set , sum )) {
3617 count ++;
3718 }
3819 }
3920 }
4021 return count ;
4122 }
4223
24+ private boolean isValid (int [][] grid , int i , int j , Set <Integer > set , int sum ) {
25+ return sum == grid [i + 1 ][j ] + grid [i + 1 ][j + 1 ] + grid [i + 1 ][j + 2 ]
26+ && sum == grid [i + 2 ][j ] + grid [i + 2 ][j + 1 ] + grid [i + 2 ][j + 2 ]
27+
28+ && sum == grid [i ][j ] + grid [i + 1 ][j ] + grid [i + 2 ][j ]
29+ && sum == grid [i ][j + 1 ] + grid [i + 1 ][j + 1 ] + grid [i + 2 ][j + 1 ]
30+ && sum == grid [i ][j + 2 ] + grid [i + 1 ][j + 2 ] + grid [i + 2 ][j + 2 ]
31+
32+ && sum == grid [i ][j ] + grid [i + 1 ][j + 1 ] + grid [i + 2 ][j + 2 ]
33+ && sum == grid [i ][j + 2 ] + grid [i + 1 ][j + 1 ] + grid [i + 2 ][j ]
34+
35+ && set .add (grid [i ][j ]) && isLegit (grid [i ][j ])
36+ && set .add (grid [i ][j + 1 ]) && isLegit (grid [i ][j + 1 ])
37+ && set .add (grid [i ][j + 2 ]) && isLegit (grid [i ][j + 2 ])
38+ && set .add (grid [i + 1 ][j ]) && isLegit (grid [i + 1 ][j ])
39+ && set .add (grid [i + 1 ][j + 1 ]) && isLegit (grid [i + 1 ][j + 1 ])
40+ && set .add (grid [i + 1 ][j + 2 ]) && isLegit (grid [i + 1 ][j + 2 ])
41+ && set .add (grid [i + 2 ][j ]) && isLegit (grid [i + 2 ][j ])
42+ && set .add (grid [i + 2 ][j + 1 ]) && isLegit (grid [i + 2 ][j + 1 ])
43+ && set .add (grid [i + 2 ][j + 2 ]) && isLegit (grid [i + 2 ][j + 2 ]);
44+ }
45+
4346 private boolean isLegit (int num ) {
4447 return num <= 9 && num >= 1 ;
4548 }
0 commit comments