DFS算法最简单例子——数房子问题

问题描述

中兴捧月数房子问题
《DFS算法最简单例子——数房子问题》

讨论

可以遍历二维数组,一旦发现值为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;
}
    原文作者:畑鹿驚
    原文地址: https://www.cnblogs.com/lawlietfans/p/6849997.html
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞