(JS)岛屿数量

给你一个由 ‘1’(陆地)和 ‘0’(水)组成的的二维网格,请你计算网格中岛屿的数量。

岛屿总是被水包围,并且每座岛屿只能由水平方向和/或竖直方向上相邻的陆地连接形成。

此外,你可以假设该网格的四条边均被水包围。

示例一:

输入:
11110
11010
11000
00000
输出: 1

示例二:

输入:
11000
11000
00100
00011
输出: 3
解释: 每座岛屿只能由水平和/或竖直方向上相邻的陆地连接而成。

/*** @param {character[][]} grid* @return {number}*/
var numIslands = function(grid) {let [num] = [0];if(grid && grid.length){const [maxI,maxJ] = [grid.length-1,grid[0].length-1];console.log(maxI,maxJ)let overturn = (i,j) => {if(i < 0 || j < 0 || i > maxI || j > maxJ) return;if(grid[i][j] === '1'){grid[i][j] = '0';overturn(i,j-1);overturn(i,j+1);overturn(i-1,j);overturn(i+1,j);}}for(let i = 0; i < grid.length; i++){for(let j = 0; j < grid[0].length; j++){if(grid[i][j] === '1'){num++;overturn(i,j)}}}}return num;
}let a = [["1","1","1","1","0"],["1","1","0","1","0"],["1","1","0","0","0"],["0","0","0","0","0"]]
console.log(numIslands(a))


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部