Easy C++ sol using O(1) space and O(n) time complexity


#1

int Solution::isValidSudoku(const vector &A)
{
for(int i=0;i<9;i++)
{
setrow;
for(int j=0;j<9;j++)
{
if(A[i][j]!=’.’)
{
if(row.count(A[i][j])==0)
row.insert(A[i][j]);
else return 0;
}
}
}

    for(int i=0;i<9;i++)
    {
        set<char>col;
        for(int j=0;j<9;j++)
        {
            if(A[j][i]!='.')
            {
                if(col.count(A[j][i])==0)
                col.insert(A[j][i]);
                else return 0;
            }
        }
    }
    
    for(int i=0;i<9;i++)
    {
         set<char>box;
         for(int j=0;j<9;j++)
         {
            int a=3*(i/3)+(j/3);
            int b=3*(i%3)+(j%3);
            
            if(A[a][b]!='.')
            {
                if(box.count(A[a][b])==0)
                box.insert(A[a][b]);
                else return 0;
            }
         }
    }
    return 1;

}