DFS的重要性

图论DFS小结

1.1 聚集地,水池问题

思路:在一个点,找出其所有与之相近的点 cnt++;

void dfs(int i,int j,vector<vector<int>> &v,int &cnt)
{
        v[i][j] = -1;//染色(在该点走过的路) 记录并加1
        cnt++;
        for(int k = 0;k < 4;k++)  //查找新路径
        {
            int tx = x[k] + i;
            int ty = y[k] + j;
            if(tx >= 0 && tx < v.size() && ty >= 0 && ty <v[0].size() && v[tx][ty] == 0)//在方格内且是鱼塘
            dfs(tx,ty,v,cnt);//再次搜索
        }
}

int main(){
    vector<vector<int>>v(3,vector<int>(3,0));
    v={{0,0,1},{0,2,0},{3,0,4}};
    vector<int> res;
    for(int i = 0;i < v.size();i++)
    {
        for(int j = 0;j < v[i].size();j++)
        {
            int cnt = 0;
            if(v[i][j] == 0)
            {
                dfs(i,j,v,cnt);//有效的一次dfs
                if(cnt != 0)//计算一片鱼塘大小
                res.push_back(cnt);
            }
        }
    }
}
全部评论

相关推荐

和蔼:在竞争中脱颖而出,厉害! 但是有一个小问题:谁问你了?😡我的意思是,谁在意?我告诉你,根本没人问你,在我们之中0人问了你,我把所有问你的人都请来 party 了,到场人数是0个人,誰问你了?WHO ASKED?谁问汝矣?誰があなたに聞きましたか?누가 물어봤어?我爬上了珠穆朗玛峰也没找到谁问你了,我刚刚潜入了世界上最大的射电望远镜也没开到那个问你的人的盒,在找到谁问你之前我连癌症的解药都发明了出来,我开了最大距离渲染也没找到谁问你了我活在这个被辐射蹂躏了多年的破碎世界的坟墓里目睹全球核战争把人类文明毁灭也没见到谁问你了
点赞 评论 收藏
分享
11-18 09:44
Java
小白也想要offer:简历别放洋屁,搞不还还放错了,当然你投外企除外,以上纯属个人观点
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务