Description Title:
Thinking: Method a: first of all the enumerated third-order magic square, then 11 Comparative
Method II: Violence, adding eight
code show as below:
class Solution {
public:
int numMagicSquaresInside(vector<vector<int>>& grid) {
if(grid.size()<3||grid[0].size()<3) return 0;
int cnt=0,num=0;
map<string,int>side;
side["816357492"]=1;
side["834159672"]=1;
side["618753294"]=1;
side["672159834"]=1;
side["492357816"]=1;
side["438951276"]=1;
side["294753618"]=1;
side["276951438"]=1;
for(int i=0;i<grid.size()-2;i++){
int j=i+1,k=i+2;
for(int m=0;m<grid[0].size()-2;m++){
string temp="";
temp+=to_string(grid[i][m]);
temp+=to_string(grid[i][m+1]);
temp+=to_string(grid[i][m+2]);
temp+=to_string(grid[j][m]);
temp+=to_string(grid[j][m+1]);
temp+=to_string(grid[j][m+2]);
temp+=to_string(grid[k][m]);
temp+=to_string(grid[k][m+1]);
temp+=to_string(grid[k][m+2]);
if(side[temp]==1)
cnt++;
}
}
return cnt;
}
};