LeetCode:200. 岛屿数量

class Solution {

public:

int numIslands(vector<vector<char>>& grid) {

int res=0;

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

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

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

if(grid[i][j]=='1'){

//发现岛屿数量加1

res++;

//淹没岛屿

dfs(grid,i,j);

}

}

}

return res;

}

void dfs(vector<vector<char>>& 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-1,j);

dfs(grid,i,j+1);

dfs(grid,i,j-1);

}

};

相关推荐
Gorgous—l3 小时前
数据结构算法学习:LeetCode热题100-链表篇(下)(随机链表的复制、排序链表、合并 K 个升序链表、LRU 缓存)
数据结构·学习·算法
流星5211223 小时前
GC 如何判断对象该回收?从可达性分析到回收时机的关键逻辑
java·jvm·笔记·学习·算法
sulikey3 小时前
Qt 入门简洁笔记:从框架概念到开发环境搭建
开发语言·前端·c++·qt·前端框架·visual studio·qt框架
defaulter3 小时前
Codeforces Round 1049 (Div. 2)C. Ultimate Value
算法·codeforces
zzzsde3 小时前
【C++】stack和queue:优先级队列的使用及底层原理
开发语言·c++
让我们一起加油好吗3 小时前
【数论】费马小定理
c++·算法·数论·1024程序员节·费马小定理·逆元
大数据张老师3 小时前
数据结构——冒泡排序
数据结构·算法·排序算法·1024程序员节
m0_748233644 小时前
单调队列【C/C++】
c语言·c++·算法·1024程序员节
大数据张老师4 小时前
数据结构——折半插入排序
数据结构·算法·排序算法·1024程序员节