問題描述
中興捧月數房子問題
討論
可以遍歷二維數組,一旦發現值為1的值,就通過DFS算法將該“房子”全部置0,同時房子計數加一
實現
void dfs(int i, int j)
{
if(i<0 || i>m-1 || j<0 || j>n-1 || grid[i][j]==0) return;
grid[i][j]=0;//置0
dfs(i,j+1);
dfs(i,j-1);
dfs(i+1,j);
dfs(i-1,j);
}
int gridsearch()
{
int res=0;
// 遍歷m*n的二維數組
for(int i=0;i<m;i++)
{
for(int j=0;j<n;j++)
{
if(grid[i][j])
{
res++;
dfs(i,j);
}
}
}
return res;
}