代码随想录图论part03

第十一章:图论part03

  1. 孤岛的总面积 (深搜)

代码随想录

孤岛问题:先处理边缘岛在处理孤岛

  1. 沉没孤岛 (广搜)

代码随想录

  1. 水流问题

代码随想录

目的:找水源

思路;逆向思考,找两个边界的公共源头,从第一边界出发找到所有源头,再从第二边界出发找到所有源头,重叠处即为目标

main:

深搜:

广搜:

104.建造最大岛屿

代码随想录

思路:首先找到目前最大面积的岛屿,然后遍历岛屿周边的海洋,然后找到以某一片海洋为中心的岛屿面积的最大值

第一步:

用一个map存岛屿及岛屿面积

计算岛屿面积并给他们编号

深搜(计算面积并标记):

整体代码:

第二步:

1.遍历岛屿周边海洋,岛屿已经有编号,获得周围连接岛屿总面积,根据编号查表

2.需要一个哈希来记录添加的新陆地周边(上右下左)已经计算过的岛屿编号,防止重复计算(例如,新陆地的左边和下边是同一片岛屿,这时候就得跳过左边),每次遇到新陆地就要清空该表,动态变化

整体代码:

总结:

  1. 前三道题都是逆向思考,从外向内
  2. 建造最大岛屿:第一步已经把整张图划分为几个区域,第二步就是整合区域然后找最大区域,每一步都有标记的过程,注意处理条件
相关推荐
Coder-magician4 天前
《代码随想录》刷题打卡day44:图论-part02
算法·深度优先·图论
h_a_o777oah12 天前
【图论】网络流:Dinic 算法模板实现原理及解题技巧
c++·算法·图论·acm·网络流·最小割·dinic算法
有点。13 天前
C++03阶段练习(练习题)
数据结构·算法·图论
-dzk-18 天前
【图论】LC 207.课程表
图论
wuyk55519 天前
18.Kruskal 算法:用最短的边连成一张网
开发语言·算法·图论
-dzk-19 天前
【图论】LC 994.腐烂的橘子
图论
-dzk-20 天前
【图论】LC 200.岛屿数量
深度优先·图论
Lyyaoo.21 天前
【图论】岛屿数量/腐烂的橘子/课程表/实现前缀树
图论
lvwangshu22 天前
图论:LCA、树的直径、树的重心、二分图与 Tarjan 缩点
算法·图论
hansang_IR24 天前
【题解】[APIO2023] 赛博乐园 / cyberland
c++·算法·图论