代码随想录冲冲冲 Day51 图论Part3

101. 孤岛的总面积

dfs

首先dfs的作用就是在遇到陆地的时候找到所有的周围陆地

对于这道题的dfs 会把所有的链接边缘的陆地变成海洋 这样在全部调整之后

剩下的就是孤岛了  这道题中的dfs的结束条件就是遇到海洋时

遇到每一个陆地就会把面积+1,在每一次重新找到陆地时会充值count;

在具体求结果的时候 会遍历每个边 这样与边相连的陆地都会被标记 然后改成海洋

bfs逻辑一致 只是在bfs写法上的区别

102. 沉没孤岛

跟刚刚那道题刚刚好相反 把所以边缘陆地进行标记 最后遍历所有点 把不是标记的全部标为海洋

dfs

bfs

103. 水流问题

最直接的想法

用dfs看找这个点所有的临近点知道访问到终点为止

接下来分别去判断两个边界是否满足 如果都满足那么这个点就是需要输出的点

但是用时太久

方法二:

从两个边界也就是四个边去反向找 最后如果一个点从两个维度取看都是判断为能够走到 那么就是结果

104. 建造最大岛屿

dfs对于每一块陆地进行标记编号

之后用map取存每一个标记的面积

再用一个set取存判断过的大陆

遍历每一个海面 把周围的陆地面积和当前这个点相加得到最终面积 每一个陆地都会初始化count

这样就不需要专门存下了 并且更新result

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值