840 leetcode magic square matrix

Description Title:
Here Insert Picture Description
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;
    }
};
Published 133 original articles · won praise 0 · Views 1138

Guess you like

Origin blog.csdn.net/peachzy/article/details/104444092