题意
小蓝得到了一副大小为 M × N 的格子地图,可以将其视作一个只包含字符‘0’(代表海水)和 ‘1’(代表陆地)的二维数组,地图之外可以视作全部是海水,每个岛屿由在上/下/左/右四个方向上相邻的 ‘1’ 相连接而形成。
在岛屿 A 所占据的格子中,如果可以从中选出 k 个不同的格子,使得他们的坐标能够组成一个这样的排列:,其中是由
请问这个地图上共有多少个岛屿?在进行统计时不需要统计子岛屿的数目。
思路
题目简而言之,就是有很多岛屿,会出现大岛屿包着小岛屿的情况(这种情况只算一个岛屿),求岛屿数量
主体思路就是先把整张图划分为河流与大岛屿,各个大岛屿之间通过河流分割,大岛屿内部的河流直接用1填补,这样就避免了小岛屿、大岛屿之间的影响。然后剩下来没发现一个大岛屿,进行记数并将整个岛屿覆盖为河流。