help me in code
int findMaxSquareWithAllZeros(int** arr, int row, int col){
int l = new int*[row][col];
for(int i=0;i<row;i++)
{
for(int j=0;j<col;j++)
{
l[i][j]= MAX_VAL;
}
}
for(int i=0;i<col;i++)
{
if(arr[0][i]==0)
l[0][i]=1;
}
for(int i=0;i<row;i++)
{
if(arr[i][0]==0)
l[i][0]=1;
}
for(int i=1;i<row;i++)
{
for(int j=1;j<col;j++)
{
int p = min(min(l[i-1][j-1],l[i-1][j]),l[i][j-1]);
if(p == MAX_VAL)
{
if(arr[i][j]==0)
l[i][j]=1;
else
l[i][j]=0;
}
else{
if(arr[i][j]==0)
l[i][j]=p+1;
else
l[i][j]=0;
}
}
}
int max=0;
for(int i=0;i<row;i++)
{
for(int j=0;j<col;j++)
{
if(l[i][j]==MAX_VAL)
continue;
if(max<l[i][j])
max=l[i][j];
}
}
return max;
}
void find(int** arr,int** l, int i, int j){
if(i>=row || j>=col)
return ;
int p = min(min(l[i-1][j-1],l[i-1][j]),l[i][j-1]);
if(p!=MAX_VAL)
{
if(arr[i][j]==0)
{
l[i][j]=p+1;
}
else{
l[i][j]=0;
}
}
else{
if(arr[i][j]==0)
{
l[i][j]=1;
}
else{
l[i][j]=0;
}
}
if(i <row && j+1 <col && l[i][j+1]==MAX_VAL)
find(arr,l,i,j+1);
if(i+1 <row && j <col && l[i+1][j]==MAX_VAL)
find(arr,l,i+1,j);
if(i+1 <row && j+1 <col && l[i+1][j+1]==MAX_VAL)
find(arr,l,i+1,j+1);
}
}