Skip to content

Commit 37dc414

Browse files
authored
Create 840. Magic Squares In Grid (#551)
2 parents 5a0930c + 1efeafa commit 37dc414

File tree

1 file changed

+43
-0
lines changed

1 file changed

+43
-0
lines changed

840. Magic Squares In Grid

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
class Solution {
2+
private:
3+
bool is9Digits(vector<vector<int>> &grid,int i,int j,int n,int m){
4+
int sum1=0,sum2=0,sum3=0;
5+
int sum4=0,sum5=0,sum6=0;
6+
7+
for(int k=0; k<3; k++){
8+
sum1 += grid[i][j+k];
9+
sum2 += grid[i+1][j+k];
10+
sum3 += grid[i+1][j+k];
11+
12+
sum4 += grid[i+k][j];
13+
sum5 += grid[i+k][j+1];
14+
sum6 += grid[i+k][j+2];
15+
}
16+
17+
if(sum1 != sum2 || sum1 != sum3 || sum1 != sum4
18+
|| sum4 != sum5 || sum4 != sum6) return false;
19+
20+
set<int> st;
21+
for(int ii=i; ii<=i+2; ii++){
22+
for(int jj=j; jj<=j+2; jj++){
23+
if(grid[ii][jj] > 9 || grid[ii][jj] < 1) return false;
24+
st.insert(grid[ii][jj]);
25+
}
26+
}
27+
return st.size() == 9;
28+
}
29+
public:
30+
int numMagicSquaresInside(vector<vector<int>>& grid) {
31+
int n = grid.size(),m = grid[0].size();
32+
int ans = 0;
33+
34+
for(int i=0; i<n-2; i++){
35+
for(int j=0; j<n-2; j++){
36+
if(is9Digits(grid,i,j,n,m)){
37+
ans++;
38+
}
39+
}
40+
}
41+
return ans;
42+
}
43+
};

0 commit comments

Comments
 (0)