题目简述:找到最大的岛屿,并返回其面积
参考之前的200题以及1254题
这里直接套用之前的思路就行,主要的就是保存每次的最大面积maxArea
var maxAreaOfIsland = function (grid) {
let maxArea = 0
let row = grid.length, col = grid[0].length
var dfs = function (i, j) {
if (i < 0 || i >= row || j < 0 || j >= col) return 0
if (grid[i][j] === 0) return 0
grid[i][j] = 0 // 淹没
// 要 +1,每次进入递归一次,就是淹没一块面积,就需要 +1
return dfs(i - 1, j) + dfs(i + 1, j) + dfs(i, j - 1) + dfs(i, j + 1) + 1
}
for (let i = 0; i < row; ++i) {
for (let j = 0; j < col; ++j) {
if (grid[i][j] === 1) {
maxArea = Math.max(maxArea, dfs(i, j))
}
}
}
return maxArea
};