这道题可以用暴力解法: 直接全部按照顺序遍历,然后打上标记,然后遍历的时候根据标记来计算是否是同一个岛屿,然后再更改标记. 这个解法逻辑太复杂, 不推荐. 可以想想成一个雷达在扫描这张地图,然后雷达扫描的线经过的地方可以根据之前的’记录’来看是否是岛屿. 这里最简单的是用 BFS, 搜过的点都标记为 0 或者visited, 然后 BFS 的时候只搜同一个岛屿,而且把同一个岛屿击沉.这样的话只需要两个 for 循环, 一个递归就可以解决. 代码如下:
1 | class Solution: |
这道题可以用暴力解法: 直接全部按照顺序遍历,然后打上标记,然后遍历的时候根据标记来计算是否是同一个岛屿,然后再更改标记. 这个解法逻辑太复杂, 不推荐. 可以想想成一个雷达在扫描这张地图,然后雷达扫描的线经过的地方可以根据之前的’记录’来看是否是岛屿. 这里最简单的是用 BFS, 搜过的点都标记为 0 或者visited, 然后 BFS 的时候只搜同一个岛屿,而且把同一个岛屿击沉.这样的话只需要两个 for 循环, 一个递归就可以解决. 代码如下:
1 | class Solution: |