Leetcode 36

用二维数组标记每行,每列,每块出现的数字,重复出现则return false

(vector初始化二维数组)

 bool isValidSudoku(vector<vector<char>>& board) {
        vector<vector<int>> visrow(9,vector<int>(9,0)),viscol(9,vector<int>(9,0)),visblk(9,vector<int>(9,0));
        for(int i=0;i<9;i++)
            for(int j=0;j<9;j++)
            {
                if(board[i][j]!='.')
                {
                    int num=board[i][j]-'1',k=j/3+(i/3)*3;
                    if(visrow[i][num]||viscol[j][num]||visblk[k][num])
                        return false;
                    visrow[i][num]=viscol[j][num]=visblk[k][num]=1;
                }
            }
        return true;
    }

猜你喜欢

转载自blog.csdn.net/TempterCyn/article/details/83020220
今日推荐