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

【leetcode】200. 岛屿数量

文章目录

    • 题目
    • 题解
      • 1. 深度优先搜索
      • 2. 广度优先搜索

题目

200. 岛屿数量

在这里插入图片描述

题解

1. 深度优先搜索

  1. 定义边界
  2. 判断是否为岛屿
  3. 上下左右进行搜索
class Solution(object):def numIslands(self, grid):""":type grid: List[List[str]]:rtype: int"""def dfs(grid, i, j):if not 0 <= i < len(grid) or not 0 <= j < len(grid[0]) or grid[i][j] == '0':returngrid[i][j] = '0'dfs(grid, i + 1, j)dfs(grid, i - 1, j)dfs(grid, i, j - 1)dfs(grid, i, j + 1)count = 0for i in range(len(grid)):for j in range(len(grid[0])):if grid[i][j] == '1':dfs(grid, i, j)count += 1return count

2. 广度优先搜索

  1. 定义边界
  2. 定义队列,加入该点的上下左右
  3. 进行搜索
class Solution(object):def numIslands(self, grid):""":type grid: List[List[str]]:rtype: int"""def bfs(grid, i, j):queue = [[i, j]]while queue:i, j = queue.pop(0)if 0 <= i < len(grid) and 0 <= j < len(grid[0]) and grid[i][j] == '1':grid[i][j] = '0'queue += [[i + 1, j], [i - 1, j], [i, j - 1], [i, j + 1]]count = 0for i in range(len(grid)):for j in range(len(grid[0])):if grid[i][j] == '0': continuebfs(grid, i, j)count += 1return count
http://www.xdnf.cn/news/19733.html

相关文章:

  • 有限元方法中的数值技术:预处理共轭梯度法 PCG (2)
  • 【Cursor-Gpt-5-high】StackCube-v1 任务训练结果不稳定性的分析
  • 关于linux网络编程——4
  • 醋酸铕:点亮现代生活的“隐形之光“
  • HTML元素周期表
  • 【C++】C++入门—(中)
  • ASP.NET Web Forms 实战:用 RadioButton 打造“性别/称谓选择”表单的最佳实践
  • 【数据结构】1绪论
  • 【Qt中信号槽连接connect有接收者和无接收者的区别】
  • 执行一条select语句期间发生了什么?
  • 常用符号 Emoji 对照表——Unicode UTF-8
  • CSS Sass Less 样式.xxx讲解
  • SpringMVC的请求接收与结果响应
  • 华为HCIE数通含金量所剩无几?考试难度加大?
  • 数据库选择有讲究?SQLite、PostgreSQL还是MySQL?
  • 电脑接入企业中的网线,为啥网卡上面显示AD域名
  • MongoDB 聚合查询超时:索引优化与分片策略的踩坑记录
  • 国产CAD皇冠CAD(CrownCAD)建模教程:汽车驱动桥
  • 二、Scala流程控制:分支与循环
  • 波浪模型SWAN学习(2)——波浪浅化模拟(Shoaling on sloping beach)
  • RoPE频率缩放机制:解密大语言模型上下文扩展的核心算法
  • linux之IO存储子系统全流程分析
  • 差分隐私在运营指标:ABP 的 DP 计数器与噪声预算
  • 使用PyTorch构建全连接神经网络实现MNIST手写数字分类
  • 【面试题】 如何处理中文分词?
  • LeetCode 2486.追加字符以获得子序列
  • ubuntu的2T新硬盘分区、格式化并挂载
  • Python进阶第三方库之Numpy
  • GO : cannot find module
  • 【音视频】 RGB 格式详解