岛屿数量
题解
思路1:BFS
- 思路:广度优先搜索,对每个点进行成岛判断,上下左右判断。
- 分析时间复杂度 O( M * N ) 空间复杂度 O( min( M , N )),空间复杂度为队列的长度,为一层岛屿的数量,为M或N的最小值。
- 代码实现
const numIslands = (grid) => {
if (!grid.length) {
return 0 }
let row = grid.length, col = grid[0].length, q = [], res = 0
for (let i = 0; i < row; i++) {
for (let j = 0; j < col; j++) {
if (grid[i][j] == 1) {
res++
// 成岛后把他清零,防止影响其他顺序。
grid[i][j] = 0
q.push([i, j])
while (q.length) {
let [x,