36. Valid Sudoku

来源:互联网 发布:mac 安全模式 编辑:程序博客网 时间:2024/06/11 16:10

1、思路

给一个不完整的数独盘,判断它填写的部分是否合法。


2、思路

哈希表。

每一行、每一列、每一个3*3格子做统计。

有错误,返回false。

没错就返回true。


3、代码 

    bool isValidSudoku(vector<vector<char>>& board) {        map<char,int>m;        for(int i=0;i<9;i++){               for(int j=0;j<9;j++){                m[board[i][j]]++;                if(m[board[i][j]]>1 && board[i][j]!='.')                    return false;            }               m.clear();        }                for(int i=0;i<9;i++){               for(int j=0;j<9;j++){                m[board[j][i]]++;                if(m[board[j][i]]>1 && board[j][i]!='.')                    return false;            }               m.clear();        }                for(int i=0;i<3;i++){            for(int j=0;j<3;j++){                int x = i*3,y=j*3;                for(int a=x;a<x+3;a++){                    for(int b=y;b<y+3;b++){                        m[board[a][b]]++;                        if(m[board[a][b]]>1 && board[a][b]!='.')                            return false;                    }                }                m.clear();            }        }        return true;    }