@@ -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