【攻克力扣200题--34】695. 岛屿的最大面积

mac2025-05-27  8

DFS

在程序实现 DFS 时需要考虑以下问题: 栈:用栈来保存当前节点信息,当遍历新节点返回时能够继续遍历当前节点。可以使用递归栈。 标记:和 BFS 一样同样需要对已经遍历过的节点进行标记。

var maxAreaOfIsland = function(grid) { let m=grid.length; if(m==0) return 0; let n=grid[0].length; let direction=[[-1,0],[0,-1],[1,0],[0,1]]; let maxArea=0; for(var i=0;i<m;i++){ for(var j=0;j<n;j++){ maxArea=Math.max(maxArea,dfs(grid,i,j)); } } function dfs(grid,i,j){ if(i<0||i>=m||j<0||j>=n||grid[i][j]==0) return 0; grid[i][j]=0; var area=1; for(var k=0;k<4;k++) area+=dfs(grid,i+direction[k][0],j+direction[k][1]); return area; } //这里我之所以把dfS函数放在里面,是因为想要共用全局变量m,n. return maxArea; };

 

最新回复(0)