LeetCode:1905. 统计子岛屿

class Solution {

public:

int countSubIslands(vector<vector<int>>& grid1, vector<vector<int>>& grid2) {

int m = grid1.size(), n = grid1[0].size();

for (int i = 0; i < m; i++) {

for (int j = 0; j < n; j++) {

//说明不是子岛

if (grid1[i][j] == 0 && grid2[i][j] == 1) {

dfs(grid2, i, j);

}

}

}

int res = 0;

for (int i = 0; i < m; i++) {

for (int j = 0; j < n; j++) {

if (grid2[i][j] == 1) {

res++;

dfs(grid2, i, j);

}

}

}

return res;

}

private:

void dfs(vector<vector<int>>& grid, int i, int j) {

int m = grid.size(), n = grid[0].size();

if (i < 0 || j < 0 || i >= m || j >= n) {

return;

}

if (grid[i][j] == 0) {

return;

}

grid[i][j] = 0;

dfs(grid, i + 1, j);

dfs(grid, i, j + 1);

dfs(grid, i - 1, j);

dfs(grid, i, j - 1);

}

};

相关推荐
Joy-鬼魅2 分钟前
Win10x64系统VS2022使用CreateFileMapping返回无效句柄
c++·createfilemap·vc·getlasterror
冷崖6 分钟前
排序--基数排序
c++·算法
F_D_Z14 分钟前
哈希表解Two Sum问题
python·算法·leetcode·哈希表
淼淼76317 分钟前
Qt调度 程序
开发语言·c++·windows·qt
Aaron158819 分钟前
基于RFSOC+VU13P+GPU架构在雷达电子战的技术
人工智能·算法·fpga开发·架构·硬件工程·信号处理·基带工程
LYFlied29 分钟前
【每日算法】LeetCode124. 二叉树中的最大路径和
数据结构·算法·leetcode·面试·职场和发展
暗然而日章1 小时前
C++基础:Stanford CS106L学习笔记 13 特殊成员函数(SMFs)
c++·笔记·学习
talenteddriver1 小时前
java: Java8以后hashmap扩容后根据高位确定元素新位置
java·算法·哈希算法
云泽8081 小时前
STL容器性能探秘:stack、queue、deque的实现与CPU缓存命中率优化
java·c++·缓存
yyy(十一月限定版)1 小时前
c语言——栈和队列
java·开发语言·数据结构