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);

}

};

相关推荐
啊我不会诶20 小时前
Codeforces Round 1093 (Div. 2)vp补题
算法
算法即正义20 小时前
知识竞赛音乐推荐:从开场抢答到颁奖环节的背景音乐选择指南
算法·职场和发展·学习方法
RTC老炮20 小时前
音视频FEC前向纠错算法Reed-Solomon原理分析
网络·算法·架构·音视频·webrtc
十五年专注C++开发20 小时前
C++中TAS和CAS实现自旋锁
c++·cas·原子操作·tas
噜噜噜噜鲁先森21 小时前
STL——String类
开发语言·c++·算法
Severus_black21 小时前
算法题C——用队列实现栈/用栈实现队列
c语言·数据结构·算法·链表
谭欣辰21 小时前
详细讲解 C++ 有向无环图(DAG)及拓扑排序
c++·算法·图论
欧米欧21 小时前
C++算法之双指针算法
开发语言·c++
承渊政道21 小时前
【递归、搜索与回溯算法】(掌握记忆化搜索的核心套路)
数据结构·c++·算法·leetcode·macos·动态规划·宽度优先
REDcker21 小时前
跨平台编译详解 工具链配置与工程化实践
linux·c++·windows·macos·c·跨平台·编译