36. 有效的数独

class Solution {
public:
    bool isValidSudoku(vector>& board) {
        bool used[9];
        for(int i=0;i<9;i++)
        {
            fill(used,used+9,false);
            for(int j=0;j<9;j++)
                if(!check(board[i][j],used))return false;
            fill(used,used+9,false);
            for(int j=0;j<9;j++)
                if(!check(board[j][i],used))return false;
        }
        for(int row=0;row<3;row++)
        {
            for(int col=0;col<3;col++)
            {
                fill(used,used+9,false);
                for(int i=row*3;i<(row+1)*3;i++)
                {
                    for(int j=col*3;j<(col+1)*3;j++)
                        if(!check(board[i][j],used))return false;
                }
            }
        }
        return true;
    }
    bool check(char ch,bool used[9])
    {
        if(ch=='.')return true;
        if(used[ch-'1'])return false;
        used[ch-'1']=true;
        return true;
    }
};

你可能感兴趣的:(36. 有效的数独)