numIslands
岛屿数量 - 计算二维网格中岛屿的数量。
输入配置
执行过程
开始搜索岛屿
🏝️
🏝️
🌊
🌊
🌊
🏝️
🏝️
🌊
🌊
🌊
🌊
🌊
🏝️
🌊
🌊
🌊
🌊
🌊
🏝️
🏝️
已发现岛屿: 0
🏝️ 陆地
🌊 水域
新岛屿
正在访问
当前岛屿
算法说明
岛屿数量:使用DFS遍历网格,每发现一个'1'就计数+1并用DFS标记整个岛屿。时间复杂度O(m×n),空间复杂度O(m×n)。
函数签名
typescript
function numIslands(grid: string[][]): number
function numIslandsBFS(grid: string[][]): number参数
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
grid | string[][] | 是 | '1'表示陆地,'0'表示水 |
返回值
| 类型 | 说明 |
|---|---|
number | 岛屿数量 |
工作原理
DFS版本
- 遍历网格每个单元格
- 遇到'1'时,岛屿数+1,并DFS标记整个岛屿
- DFS四个方向,将连通的'1'都标记为'0'
时间复杂度: O(m×n)
空间复杂度: O(m×n)(递归栈)
BFS版本
使用队列进行层序遍历,标记整个岛屿。
时间复杂度: O(m×n)
空间复杂度: O(min(m,n))(队列)
应用: 连通分量、区域填充