Skip to content

numIslands

岛屿数量 - 计算二维网格中岛屿的数量。

输入配置

执行过程

步骤 1 / 15
开始搜索岛屿
🏝️
🏝️
🌊
🌊
🌊
🏝️
🏝️
🌊
🌊
🌊
🌊
🌊
🏝️
🌊
🌊
🌊
🌊
🌊
🏝️
🏝️
已发现岛屿: 0
🏝️ 陆地
🌊 水域
新岛屿
正在访问
当前岛屿

算法说明

岛屿数量:使用DFS遍历网格,每发现一个'1'就计数+1并用DFS标记整个岛屿。时间复杂度O(m×n),空间复杂度O(m×n)。

函数签名

typescript
function numIslands(grid: string[][]): number
function numIslandsBFS(grid: string[][]): number

参数

参数名类型必填说明
gridstring[][]'1'表示陆地,'0'表示水

返回值

类型说明
number岛屿数量

工作原理

DFS版本

  1. 遍历网格每个单元格
  2. 遇到'1'时,岛屿数+1,并DFS标记整个岛屿
  3. DFS四个方向,将连通的'1'都标记为'0'

时间复杂度: O(m×n)
空间复杂度: O(m×n)(递归栈)

BFS版本

使用队列进行层序遍历,标记整个岛屿。

时间复杂度: O(m×n)
空间复杂度: O(min(m,n))(队列)

应用: 连通分量、区域填充