【leetcode】695.岛屿的最大面积

70 阅读1分钟

leetcode-695.png

题目简述:找到最大的岛屿,并返回其面积
参考之前的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
};