岛屿数量 -- 二维矩阵的dfs算法

岛屿数量

又被称为 FloodFill 算法

python 复制代码
class NumIslands:
    """
    floodFill 算法
    https://leetcode.cn/problems/number-of-islands/
    """
    def solution(self, grid: List[List[str]]) -> int:
        res = 0
        m, n = len(grid), len(grid[0])
        for i in range(m):
            for j in range(n):
                if grid[i][j] == '1':
                    res += 1
                    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

        if grid[i][j] == '0':
            return
        grid[i][j] = '0'
        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)  # 右
        
相关推荐
普通攻击往后拉6 小时前
Leetcode 206. 反转链表
算法·leetcode·链表
@syh.7 小时前
【贪心】矩阵消除游戏
算法·游戏·矩阵
可编程芯片开发7 小时前
基于零极点配置的PID控制系统simulink建模与仿真
算法
徐小夕7 小时前
开源!我用SQLite + DuckDB打造了一款可视化AI问数平台
前端·算法·github
Hrain-AI8 小时前
2026 企业 AI 智能体平台横评:8 大主流平台 7 维度实测对比
人工智能·算法·机器学习
Angel Q.9 小时前
因子分析和生成模型有什么关系?从“幕后因素”到“生成数据”
算法
FBI HackerHarry浩10 小时前
AI大模型开发V2第四阶段线性回归
人工智能·算法·线性回归
Jerry11 小时前
LeetCode 108. 将有序数组转换为二叉搜索树
算法
蓝斯49712 小时前
Diff算法的简单介绍
算法