leetcode-200 岛屿数量
给定一个由 '1'
(陆地)和 '0'
(水)组成的的二维网格,计算岛屿的数量。
var numIslands = function(grid) { let sum = 0; const row = grid.length const col = grid[0].length function dfs(i, j) { if (i < 0 || i >= row || j < 0 || j >= col || grid[i][j] == '0') return; const dir = [[-1, 0], [0, -1], [0, 1], [1, 0]] grid[i][j] = '0' for (let [x, y] of dir) { dfs(i + x, j + y); } } for (let i = 0; i < row; i++) { for (let j = 0; j < col; j++) { if (grid[i][j] === '1') { dfs(i, j); sum++; } } } return sum; };
解析
遍历数组,遇到1 时,就进行深度优先遍历,将遇到的1 全部置为 0, 这样遍历过程中再遇到的 1, 说明就为孤岛。
关键
深度优先,矩阵
其他答案
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论