Advertisement

第100题 | 图论(一)

阅读量:

目录

1 200. 岛屿数量

2 994. 腐烂的橘子

2.1 智障遍历法

2.2 仿层序遍历法


菜鸟做题,语言是 C++

1 200. 岛屿数量

解题思路:

依次遍历二维数组中的每一个元素,并统计其中值为"1"的单元格数量(每当发现一个这样的单元格时,则将岛屿的数量加一)。
找出所有与当前单元格直接相连或通过其他单元格间接相连的所有那些位置中的值为"1"的位置。
将这些位置上的数值设置为零之后,再继续遍历剩余的部分以统计下一个符合条件的"1"的数量。

思路说明图:

如步骤 ①所示, 我们识别出位于"①"(红框内部)中的"①"这一数值, 它将构成后续操作的第一步. 随后, 我们识别出与上述"①"直接或间接相连的所有"①", 如步骤 ②所示. 这些位于"①"(红框内部)中的连续"①"将形成一个独立的区域.

直接连接 是指上下左右四个方向,斜对角方向的不算。

除此之外,在下一次寻找"1"时为了避免重复识别这座岛屿内部的"1"作为下一个岛屿的起始标志符我们需要将这些"1"标记设置为"0"

我们在对整

全部评论 (0)

还没有任何评论哟~