【题目】


【代码】
【方法1】深度优先

class Solution:def countSubIslands(self, grid1: List[List[int]], grid2: List[List[int]]) -> int:cnt=0        def dfs(x,y):if x>=0 and x<len(grid2) and y>=0 and y<len(grid2[0]) and grid2[x][y]==1:grid2[x][y]=0return grid1[x][y] & dfs(x-1,y) & dfs(x+1,y) & dfs(x,y-1) & dfs(x,y+1)return Truefor i in range(len(grid2)):for j in range(len(grid2[0])):if grid2[i][j]==1:cnt+=dfs(i,j)return cnt

【方法2】广度优先

class Solution:def countSubIslands(self, grid1: List[List[int]], grid2: List[List[int]]) -> int:m, n = len(grid1), len(grid1[0])def bfs(sx: int, sy: int) -> int:q = deque([(sx, sy)])grid2[sx][sy] = 0# 判断岛屿包含的每一个格子是否都在 grid1 中出现了check = (grid1[sx][sy] == 1)while q:x, y = q.popleft()for nx, ny in ((x - 1, y), (x + 1, y), (x, y - 1), (x, y + 1)):if 0 <= nx < m and 0 <= ny < n and grid2[nx][ny] == 1:q.append((nx, ny))grid2[nx][ny] = 0if grid1[nx][ny] != 1:check = Falsereturn int(check)ans = 0for i in range(m):for j in range(n):if grid2[i][j] == 1:ans += bfs(i, j)return ans

【广度优先搜索-中等】1905. 统计子岛屿相关推荐

  1. 【深度优先搜索】leetcode 1905. 统计子岛屿

    1905. 统计子岛屿 文章目录 题目描述 示例1: 示例2: 提示 方法:深度优先搜索 解题思路 代码 复杂度分析 题目描述 给你两个 m x n 的二进制矩阵 grid1 和 grid2 ,它们只 ...

  2. LeetCode 1905. 统计子岛屿

    LeetCode 1905. 统计子岛屿 题目 思路 代码 题目 链接: https://leetcode.cn/problems/count-sub-islands/ 给你两个 m x n 的二进制 ...

  3. 1905. 统计子岛屿-深度优先遍历图

    1905. 统计子岛屿-深度优先遍历图 给你两个 m x n 的二进制矩阵 grid1 和 grid2 ,它们只包含 0 (表示水域)和 1 (表示陆地).一个 岛屿 是由 四个方向 (水平或者竖直) ...

  4. 剑指 Offer 15. 二进制中1的个数 and leetcode 1905. 统计子岛屿

    题目 请实现一个函数,输入一个整数(以二进制串形式),输出该数二进制表示中 1 的个数.例如,把 9 表示成二进制是 1001,有 2 位是 1.因此,如果输入 9,则该函数输出 2. 示例 1: 输 ...

  5. LeetCode 1905. 统计子岛屿(BFS)

    文章目录 1. 题目 2. 解题 1. 题目 给你两个 m x n 的二进制矩阵 grid1 和 grid2 ,它们只包含 0 (表示水域)和 1 (表示陆地). 一个 岛屿 是由 四个方向 (水平或 ...

  6. 1905 统计子岛屿

    题目描述: 给你两个 m x n 的二进制矩阵 grid1 和 grid2 ,它们只包含 0 (表示水域)和 1 (表示陆地).一个 岛屿 是由 四个方向 (水平或者竖直)上相邻的 1 组成的区域.任 ...

  7. leetcode 1905. 统计子岛屿(C++、java、python)

    给你两个 m x n 的二进制矩阵 grid1 和 grid2 ,它们只包含 0 (表示水域)和 1 (表示陆地).一个 岛屿 是由 四个方向 (水平或者竖直)上相邻的 1 组成的区域.任何矩阵以外的 ...

  8. leetcode day 2 【1905. 统计子岛屿】 BFS/DFS

    解题思路 BFS 找到grid2中的每一座岛屿[暴力搜索整个grid矩阵],对每座岛屿BFS,过程中check岛屿格子是否在grid1中为岛屿. class Solution:def countSub ...

  9. 1905. 统计子岛屿

    我的做法是先在grid2上面搜索,每遇到一个连通图就遍历这个图,每个被遍历的节点都找一个grid1是否存在,不存在就return false. class Solution { public:int ...

最新文章

  1. 通过集成式有源EMI滤波器降低EMI并缩小电源尺寸
  2. php中的单引号与双引号详解
  3. Windows下MetaMap工具安装
  4. 把一个中文日期时间格式字符串转为日期时间
  5. com.esri.android,解决ArcGIS Android Could not find class 'com.esri.android.map.MapView'问题
  6. [转]JavaScript构造函数及原型对象
  7. java字节码提取if语句_终于找到了!有了它你就可以读懂字节码了!
  8. 设计灵感|春节新年到!充满年味的海报给你参考
  9. php 怎么开启错误报告,总结PHP开启关闭错误报告示例代码以及PHP脚本不报错的原因...
  10. ArcGIS 10.2.2 for Desktop非管理员权限用户连接Oracle12c,崩溃
  11. Makefile 文件怎么写
  12. Java 并发编程之美:线程相关的基础知识
  13. 常用的13个开源GIS软件,值得收藏!
  14. “电容触摸按键实验”实例解析
  15. Rayson API 框架分析系列之3:RSON序列化格式
  16. Android图片拼接
  17. C#使用Microsoft.Office.Interop.Word操作word书签位置插入Wingdings 2复选框
  18. 支付宝支付(详细版)
  19. iOS开发 手势密码解锁和指纹TouchID解锁
  20. 华南农业大学计算机学院院长,华南农业大学外国语学院院长何高大

热门文章

  1. 智能科技五大创新商业模式
  2. PHP系统常量及判断某常量是否被定义
  3. 人文思考与科研探索之管锥篇
  4. PLC单片机实验开发设备
  5. 英语音标,元音汇总(0基础学英语!必备!)
  6. png格式的icon使用方法
  7. P4 晶体管四种工作状态+静态分析【更新】
  8. zigbee芯片方案和模组选型
  9. android-4集成高德地图的搜索和导航功能
  10. 数字化门店管理|如何让门店数字化管理,更加贴合日常运营细节?