Easy DFS Approach|| C++ Solution


#1
void dfs(int x,int y,int r,int c,vector<string> A,vector<vector<int>> &vis,int x1[],int y1[])
{
    vis[x][y]=1;
    
    for(int i=0;i<4;i++)
    {
        int n=x+x1[i],m=y+y1[i];
        if( n<r && n>=0 && m<c && m>=0 &&  !vis[n][m] && A[n][m]=='X')
        {
                dfs(n,m,r,c,A,vis,x1,y1);
        }
    }
}



int Solution::black(vector<string> &A) {
int n=A.size(),m=A[0].size();
int ans=0;

int x1[4]={-1,0,1,0};
int y1[4]={0,-1,0,1};


    vector<vector<int>> vis(n,vector<int> (m,0));
    for(int i=0;i<n;i++ )
    {
        for(int j=0;j<m;j++)
        {
            if(!vis[i][j] && A[i][j]=='X')
            {
                dfs(i,j,n,m,A,vis,x1,y1);
                ans++;
            }
        }
    }
    return ans;
}