Solution using Hash


#1

int gridCheck(int row,int col,const vector&A)
{
map<int,int>m;
for(int i=row;i<row+3;i++)
{
for(int j=col;j<col+3;j++)
{
if(isdigit(A[i][j]))
m[A[i][j]]++;
if(m[A[i][j]]>1)
return 0;
}
}
return 1;
}
int Solution::isValidSudoku(const vector &A) {
map<int,int>m;
int i,j;
for(i=0;i<9;i++)
{
m.clear();
for(j=0;j<9;j++)
{
if(isdigit(A[j][i]))
m[A[j][i]]++;
if(m[A[j][i]]>1)
return 0;
}
}
m.clear();
for(i=0;i<9;i++)
{
m.clear();
for(j=0;j<9;j++)
{
if(isdigit(A[i][j]))
m[A[i][j]]++;
if(m[A[i][j]]>1)
return 0;
}
}
for(i=0;i<9;i=i+3)
{
for(j=0;j<9;j=j+3)
{
if(gridCheck(i,j,A)==0)
return 0;
}
}
return 1;
}