LeetCode 36. Valid Sudoku

2019-07-26 11:07:00 浏览数 (2)

题目

代码语言:javascript复制
class Solution {
public:
    int tag[10];
    bool isValidSudoku(vector<vector<char>>& board) {
        
        for(int i=0;i<9;i  )
        {
            memset(tag,0,sizeof(tag));
            for(int j=0;j<9;j  )
            {
                if(board[i][j]=='.') continue;
                int x = board[i][j]-'0';
                
                if(tag[x]==1)
                    return false;
                
                tag[x]=1;
            }
            
            memset(tag,0,sizeof(tag));
            for(int j=0;j<9;j  )
            {
                if(board[j][i]=='.') continue;
                int x = board[j][i]-'0';
                
                if(tag[x]==1)
                    return false;
                
                tag[x]=1;
            }
        }
        
        memset(tag,0,sizeof(tag));
        
        for(int p=0;p<3;p  ){
        
        for(int i=0;i<3;i  )
        {
            memset(tag,0,sizeof(tag));
            for(int j=i*3;j<3 i*3;j  )
            {
                for(int k=p*3;k<3 p*3;k  )
                {
                    if(board[j][k]=='.') continue;
                    int x = board[j][k]-'0';
                
                    if(tag[x]==1)
                        return false;
                
                    tag[x]=1;
                }
            }
        }
        }
        
        return true;
        
    }
};

0 人点赞