1905. 统计子岛屿
我的做法是先在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. 统计子岛屿相关推荐
- LeetCode 1905. 统计子岛屿
LeetCode 1905. 统计子岛屿 题目 思路 代码 题目 链接: https://leetcode.cn/problems/count-sub-islands/ 给你两个 m x n 的二进制 ...
- 1905. 统计子岛屿-深度优先遍历图
1905. 统计子岛屿-深度优先遍历图 给你两个 m x n 的二进制矩阵 grid1 和 grid2 ,它们只包含 0 (表示水域)和 1 (表示陆地).一个 岛屿 是由 四个方向 (水平或者竖直) ...
- 【深度优先搜索】leetcode 1905. 统计子岛屿
1905. 统计子岛屿 文章目录 题目描述 示例1: 示例2: 提示 方法:深度优先搜索 解题思路 代码 复杂度分析 题目描述 给你两个 m x n 的二进制矩阵 grid1 和 grid2 ,它们只 ...
- 剑指 Offer 15. 二进制中1的个数 and leetcode 1905. 统计子岛屿
题目 请实现一个函数,输入一个整数(以二进制串形式),输出该数二进制表示中 1 的个数.例如,把 9 表示成二进制是 1001,有 2 位是 1.因此,如果输入 9,则该函数输出 2. 示例 1: 输 ...
- LeetCode 1905. 统计子岛屿(BFS)
文章目录 1. 题目 2. 解题 1. 题目 给你两个 m x n 的二进制矩阵 grid1 和 grid2 ,它们只包含 0 (表示水域)和 1 (表示陆地). 一个 岛屿 是由 四个方向 (水平或 ...
- 1905 统计子岛屿
题目描述: 给你两个 m x n 的二进制矩阵 grid1 和 grid2 ,它们只包含 0 (表示水域)和 1 (表示陆地).一个 岛屿 是由 四个方向 (水平或者竖直)上相邻的 1 组成的区域.任 ...
- leetcode 1905. 统计子岛屿(C++、java、python)
给你两个 m x n 的二进制矩阵 grid1 和 grid2 ,它们只包含 0 (表示水域)和 1 (表示陆地).一个 岛屿 是由 四个方向 (水平或者竖直)上相邻的 1 组成的区域.任何矩阵以外的 ...
- leetcode day 2 【1905. 统计子岛屿】 BFS/DFS
解题思路 BFS 找到grid2中的每一座岛屿[暴力搜索整个grid矩阵],对每座岛屿BFS,过程中check岛屿格子是否在grid1中为岛屿. class Solution:def countSub ...
- 【广度优先搜索-中等】1905. 统计子岛屿
[题目] [代码] [方法1]深度优先 class Solution:def countSubIslands(self, grid1: List[List[int]], grid2: List[Lis ...
最新文章
- 阿里从来不只属于马云,但马云会永远属于阿里
- 谈谈 Mifare Classic 破解
- Codespaces
- Windows 10系统重装U盘启动工具制作方法实例演示,windows11镜像下载地址
- JavaScript实现浏览器菜单的一些功能
- MYSQL重置ROOT密码
- 第六章实验报告(函数和宏定义实验)
- json无法解析的字符
- python os 常用方法
- 做开源,兴趣是最好的源动力 | 龙蜥开发者说第1期
- H桥和NMOS,PMOS理解
- 计算机无法开机如何读u盘启动,无法开机u盘装系统教程
- 程序员编程入门一定知道!程序员需要学什么?
- Task一个轻量级分布式任务计算系统
- CG快报 2011.11.22
- 关于Mac版Mysql的my.cnf配置文件
- pci和pci_PCI合规性
- HTML5 Canvas编写五彩连珠(4):动画
- 云原生计算基金会宣布Envoy毕业
- asp.net视频教程于海涛