深度优先遍历,找到陆地+1,并把他相邻的所有陆地改为海
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
|
var numIslands = function (grid) { if (!grid || grid.length === 0) return 0; const row = grid.length, col = grid[0].length; let islandCount = 0; function dfs(r, c) { if (r < 0 || c < 0 || r >= row || c >= col || grid[r][c] === "0") { return; } grid[r][c] = "0"; dfs(r - 1, c); dfs(r + 1, c); dfs(r, c - 1); dfs(r, c + 1); } for (let r = 0; r < row; r++) { for (let c = 0; c < col; c++) { if (grid[r][c] === "1") { islandCount++; dfs(r, c); } } } return islandCount; };
|