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

class Solution {
public:int line;int row;vector<vector<int>>grid;class pos{public:int x_;int y_;pos(int x,int y):x_(x),y_(y){};};bool isSub(vector<vector<int>>&grid1,int x,int y){queue<pos>bfs;bool ret = true;grid1[x][y]=2;bfs.push(pos(x,y));if(grid[x][y]!=1)ret = false;while(!bfs.empty()){auto x = bfs.front().x_;auto y = bfs.front().y_;bfs.pop();if(x+1<line && 1==grid1[x+1][y]){grid1[x+1][y]=2;bfs.push(pos(x+1,y));if(grid[x+1][y]!=1)ret = false;}if(x-1>=0 && 1==grid1[x-1][y]){grid1[x-1][y]=2;bfs.push(pos(x-1,y));if(grid[x-1][y]!=1)ret = false;}if(y+1<row && 1==grid1[x][y+1]){grid1[x][y+1]=2;bfs.push(pos(x,y+1));if(grid[x][y+1]!=1)ret = false;}if(y-1>=0 && 1==grid1[x][y-1]){grid1[x][y-1]=2;bfs.push(pos(x,y-1));if(grid[x][y-1]!=1)ret = false;}}return ret;}int countSubIslands(vector<vector<int>>& grid1, vector<vector<int>>& grid2) {grid = grid1;int ret = 0;line = static_cast<int>(grid2.size());row = static_cast<int>(grid2[0].size());for(int i=0;i<line;++i){for(int j=0;j<row;++j){if(1==grid2[i][j]&&isSub(grid2,i,j))++ret;}}return ret;}
};

1905. 统计子岛屿相关推荐

  1. LeetCode 1905. 统计子岛屿

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

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

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

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

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

  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. 统计子岛屿

    [题目] [代码] [方法1]深度优先 class Solution:def countSubIslands(self, grid1: List[List[int]], grid2: List[Lis ...

最新文章

  1. 阿里从来不只属于马云,但马云会永远属于阿里
  2. 谈谈 Mifare Classic 破解
  3. Codespaces
  4. Windows 10系统重装U盘启动工具制作方法实例演示,windows11镜像下载地址
  5. JavaScript实现浏览器菜单的一些功能
  6. MYSQL重置ROOT密码
  7. 第六章实验报告(函数和宏定义实验)
  8. json无法解析的字符
  9. python os 常用方法
  10. 做开源,兴趣是最好的源动力 | 龙蜥开发者说第1期
  11. H桥和NMOS,PMOS理解
  12. 计算机无法开机如何读u盘启动,无法开机u盘装系统教程
  13. 程序员编程入门一定知道!程序员需要学什么?
  14. Task一个轻量级分布式任务计算系统
  15. CG快报 2011.11.22
  16. 关于Mac版Mysql的my.cnf配置文件
  17. pci和pci_PCI合规性
  18. HTML5 Canvas编写五彩连珠(4):动画
  19. 云原生计算基金会宣布Envoy毕业
  20. asp.net视频教程于海涛

热门文章

  1. 02 数字图像技术——颜色空间转换与颜色空间分割实验结果与分析——python
  2. Xshell6官网个人免费版下载
  3. 记账之后的收支明细,如何以收支图表的形式呈现
  4. 互联网信息服务ICP业务许可证(仅限互联网信息服务)是什么许可证?
  5. 连接策略与搜索引擎优化
  6. 电脑键盘打字错乱怎么办?按键混乱的5种解决方法
  7. 2019年10月计算机系统结构答案,2019年计算机系统结构复习题.doc
  8. Windows系统中如何将C盘划分为多个盘符的详细图文教程
  9. 知物由学 | iOS AssetBundle资源保护
  10. 1米*1米*1米*1米*1米等于什么?