
/**
* @param {number[][]} grid
* @return {number}
*/
var maxAreaOfIsland = function (grid) {
const row = grid.length;
const list = grid[0].length;
var ans = 0;
const judge = (i, j) => {
if (i < 0 || i >= row || j < 0 || j >= list || grid[i][j] !== 1) {
return 0;
}
//访问后置为0,防止重复访问
grid[i][j] = 0;
return 1 + judge(i, j + 1) + judge(i, j - 1) + judge(i + 1, j) + judge(i - 1, j);
}
for (let i = 0; i < row;i++){
for (let j = 0; j < list; j++){
ans = Math.max(ans, judge(i, j));
}
}
return ans;
};
这是一个关于算法的博客,主要讨论了一种用于寻找二维网格中最大岛屿面积的方法。算法通过深度优先搜索遍历网格,并在访问过的单元格上置零以防止重复计算。遍历过程中,计算每个1(表示陆地)单元格周围的岛屿面积,并更新最大面积记录。最终返回最大岛屿的面积。
1022

被折叠的 条评论
为什么被折叠?



