CodingNotes(01)
岛屿系列题目
695.岛屿的最大面积
我的思路
最简单的想法
- 有一个函数输入是某个为1的点,然后去找这个点所在岛屿的面积。
- 函数计算的方式是DFS,向四周遍历直到碰到0。
- 遍历所有为1的点取最大值。
Code
第一版code
1 |
|
但是这里没有考虑到重复访问的问题,没有将已经计数过的陆地置为0,陷入无限递归而导致栈溢出。
修改后的code:
1 |
|
1905. 统计子岛屿
我的思路
- 同上题 不过dfs函数的返回值改为bool类型,基本思想是边遍历边判断。
code
1 |
|
一开始踩了几个坑
- 首先是觉得grid1和grid2的不同时就返回false,显然当grid1==1 && grid2 == 0 时是不成立的
- 其次是grid1 == 0 && grid2 == 1时不能直接返回false,否则递归会直接中止。
1020. 飞地的数量
我的思路
先把所有和边界联通的陆地都沉了,然后再去统计剩余的陆地数量。
code
1 |
|
CodingNotes(01)
https://arcanus.red/2024/11/17/CodingNotes-01/