当前位置: 首页 > article >正文

python-leetcode-岛屿数量

200. 岛屿数量 - 力扣(LeetCode)

class Solution:
    def numIslands(self, grid: List[List[str]]) -> int:
        if not grid or not grid[0]:
            return 0

        rows, cols = len(grid), len(grid[0])
        count = 0

        def dfs(r, c):
            if r < 0 or c < 0 or r >= rows or c >= cols or grid[r][c] == '0':
                return
            grid[r][c] = '0'  # 将访问过的陆地标记为水
            dfs(r + 1, c)  # 下
            dfs(r - 1, c)  # 上
            dfs(r, c + 1)  # 右
            dfs(r, c - 1)  # 左

        for r in range(rows):
            for c in range(cols):
                if grid[r][c] == '1':  # 发现新岛屿
                    count += 1
                    dfs(r, c)  # 淹没整座岛屿
        
        return count


http://www.kler.cn/a/534584.html

相关文章:

  • 中小企业的采购流程,采购管理是如何进行的?
  • Gurobi基础语法之 addConstr, addConstrs, addQConstr, addMQConstr
  • axios如何利用promise无痛刷新token
  • Chromium132 编译指南 - Android 篇(一):编译前准备
  • [paddle] 矩阵相关的指标
  • Windows图形界面(GUI)-QT-C/C++ - QT Tab Widget
  • 设备通过国标GB28181接入EasyCVR,显示在线但视频无法播放的原因排查
  • Racecar Gym
  • 【B站保姆级视频教程:Jetson配置YOLOv11环境(七)Ultralytics YOLOv11配置】
  • .NET 中实现生产者-消费者模型,BlockingCollection<T> 和 Channel<T>使用示例
  • 大模型Dense、MoE 与 Hybrid-MoE 架构的比较
  • 从java角度对比nodejs、fastapi,同步和异步区别
  • 【hot100】073矩阵置零
  • FFmpeg 头文件完美翻译之 libavfilter 模块
  • 怎么实现AI思考过程
  • 【前端】【Ts】TypeScript的关键知识点
  • css小知识
  • Windows图形界面(GUI)-QT-C/C++ - QT Dock Widget
  • 【12】深入理解Golang值传递与引用传递:避坑指南与性能优化
  • 前端学习数据库知识
  • React组件中的列表渲染与分隔符处理技巧
  • YOLOv11实时目标检测 | 摄像头视频图片文件检测
  • ZZNUOJ(C/C++)基础练习1061——1070(详解版)
  • 《redis的pub/sub机制》
  • Vue 3 中的 el-tooltip 详解:语法、示例及与其他框架对比
  • 谈谈对IOC的理解