统计封闭岛屿的数目

2023-11-04

1254. 统计封闭岛屿的数目

关于岛屿的相似题目:

  1. 岛屿数量 – 二维矩阵的dfs算法
  2. 封闭岛屿数量 – 二维矩阵的dfs算法
  3. 统计封闭岛屿的数目
  4. 统计子岛屿
  5. 不同岛屿的数量

class MaxAreaOfIsland:
    """
    floodFill 算法
    1254. 统计封闭岛屿的数目
    https://leetcode.cn/problems/number-of-closed-islands/
    """

    def solution(self, grid: List[List[str]]) -> int:
        res = 0
        m, n = len(grid), len(grid[0])

        # 遍历grid,就是所有的封闭岛屿
        for i in range(m):
            for j in range(n):
                if grid[i][j] == 1:
                    res = max(res, self.dfs_matrix(grid, i, j))

        return res

    def dfs_matrix(self, grid, i, j):
        m, n = len(grid), len(grid[0])

        # 跳出递归条件
        if i < 0 or i >= m or j < 0 or j >= n:
            return 0

        if grid[i][j] == 0:
            return 0

        grid[i][j] = 0
        return self.dfs_matrix(grid, i - 1, j) + \
               self.dfs_matrix(grid, i + 1, j) + \
               self.dfs_matrix(grid, i, j - 1) + \
               self.dfs_matrix(grid, i, j + 1) + 1


本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

统计封闭岛屿的数目 的相关文章

  • format 修改matlab数据显示的位宽

    修改matlab数据显示的位宽 format long maltab浮点数据显示一般默认小数点后四位 如 如果需要扩大显示的精度 可以使用format long 对于双精度数据显示15位小数位 对于单精度数据显示7位小数位 如 通过help
  • Spring中同一个service调用方法不回滚的解决方法

    在java配置类上添加注解 EnableAspectJAutoProxy exposeProxy true 方式暴漏代理对象 然后在service中通过代理对象AopContext currentProxy 去调用方法 Service pu
  • echarts 渐变

    series name 电流 A type line showBackground true itemStyle color 437EE0 areaStyle color type linear x 0 y 0 x2 0

随机推荐