[力扣Hot 100------第6题--200.岛屿数量]

Nysa ·
更新时间:2024-11-15
· 550 次阅读

记住DFS的两个要点:递归+安全带;

而BFS没有这些,而是借助一个stack数组。   

1.DFS

var numIslands = function(grid) { var m=grid.length; if(m===0) return 0; var n=grid[0].length; var count=0; for(var i=0;i<m;i++){ for(var j=0;j<n;j++){ if(grid[i][j]==='1'){ dfs(i,j); count++; } } } return count; function dfs(i,j){ if(i=m||j=n||grid[i][j]==='0') return; grid[i][j]='0'; dfs(i-1,j); dfs(i+1,j); dfs(i,j-1); dfs(i,j+1); } };

2.BFS

var numIslands = function(grid) { var m=grid.length; if(m===0) return 0; var n=grid[0].length; var count=0; for(var i=0;i<m;i++){ for(var j=0;j=0&&x=0&&y<n&&grid[x][y]==='1'){ grid[x][y]='0'; stack.push([x-1,y],[x+1,y],[x,y-1],[x,y+1]); } } } };
作者:小小布丁--pudding



岛屿 hot

需要 登录 后方可回复, 如果你还没有账号请 注册新账号