1905. 统计子岛屿
时间:2021-08-22
本文章向大家介绍1905. 统计子岛屿,主要包括1905. 统计子岛屿使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
遍历grid2,如果在遍历一个岛屿的过程中没有超过相应的grid1的1的范围,说明遍历到了一个子岛屿,否则不是子岛屿
int st[510][510];
int dx[] = {0, 1, 0, -1};
int dy[] = {1, 0, -1, 0};
int valid;
class Solution {
public:
void dfs(int x, int y, int row, int col, vector<vector<int>>& grid1, vector<vector<int>>& grid2, int &valid){
st[x][y] = 1;
if(grid1[x][y] == 0) valid = 0;
for(int i = 0; i < 4; i ++){
int a = x + dx[i], b = y + dy[i];
if(a < 0 || a >= row || b < 0 || b >= col) continue;
if(grid2[a][b] && !st[a][b]) dfs(a, b, row, col, grid1, grid2, valid);
}
}
int countSubIslands(vector<vector<int>>& grid1, vector<vector<int>>& grid2) {
memset(st, 0, sizeof st);
int row = grid1.size(), col = grid1[0].size();
int cnt = 0;
for(int i = 0; i < row; i ++){
for(int j = 0; j < col; j ++){
if(grid2[i][j] && st[i][j] == 0){
valid = 1;
dfs(i, j, row, col, grid1, grid2, valid);
cnt += valid;
}
}
}
return cnt;
}
};
原文地址:https://www.cnblogs.com/tomori/p/15172767.html
- 2017"百度之星"程序设计大赛 - 复赛1001&&HDU 6144 Arithmetic of Bomb【java大模拟】
- Java面向对象抽象类实例练习
- 经典JS闭包面试题
- Java面向对象接口的应用实例练习
- 【机器学习笔记之八】使用朴素贝叶斯进行文本的分类
- 【Java学习笔记之二十二】解析接口在Java继承中的用法及实例分析
- 扫一扫二维码就能打开网站,就能添加联系人,就能链接wifi(续)
- Java面向对象抽象类案例分析
- 【Java学习笔记之二十三】instanceof运算符的用法小结
- 基础才是重中之重~多线程的代价~我的内存都被吃了!
- 【Java学习笔记之二十八】深入了解Java8新特性
- 【Java学习笔记之二十四】对Java多态性的一点理解
- 【Java学习笔记之二十六】深入理解Java匿名内部类
- 【Java学习笔记之二十五】初步认知Java内部类
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- SSH框架分层功能区分
- JAVA字符串如何像数组一样取字符?
- R语言泰坦尼克号随机森林模型案例数据分析
- 日常工作中的设计:解耦和封装
- 详解Gson的TypeToken原理
- 时间序列分解和异常检测方法应用案例
- 为什么机器学习应用交易那么难(上)
- 快速学习-sentinel动态规则扩展
- Git-git diff命令结果解析
- 快速学习-sentinel实时监控
- Git技术干货!工作中Git的使用实践和常用命令合集!
- gremlin-both()与bothE().bothV()的区别
- C# Time.deltaTime 增量时间
- Docker--docker ps 命令与结果解析
- Junit5系列-Junit5中@DisplayName自定义名称