leetcode 200岛屿数量
程序员文章站
2022-04-25 10:41:05
...
问题描述
代码
class Solution {
private:
vector <vector <bool> >visited;
int m,n;
int move[4][2]={{-1,0},{0,1},{1,0},{0,-1}};
bool effective(int x,int y) {
if(x>=0&&x<=m-1&&y>=0&&y<=n-1) return true;
return false;
}
void getNumIslands(vector <vector <char> >&grid,int x,int y)
{//明确每一个get函数都是去寻找与开始点连接的陆地,并将那一块陆地访问
visited[x][y]=true;
//这里看似没有递归出口但是实际上后面的if就是在筛选
int xx,yy;
for(int i=0;i<4;i++) {
xx=x+move[i][0];
yy=y+move[i][1];
if(effective(xx,yy)&&visited[xx][yy]==false&&grid[xx][yy]=='1') {
getNumIslands(grid,xx,yy);
}
}
}
public:
int numIslands(vector<vector<char>>& grid) {
m=grid.size();
n=grid[0].size();
int land=0,res=0;
visited=vector <vector <bool> > (m,vector <bool> (n,false));
for(int i=0;i<m;i++) {
for(int j=0;j<n;j++) {
if(grid[i][j]=='1') land++;
}
}
for(int i=0;i<m;i++) {
for(int j=0;j<n;j++) {
if(grid[i][j]=='1'&&visited[i][j]==false) {
getNumIslands(grid,i,j);
res++;
}
}
}
return res;
}
};
上一篇: CSS世界(读书笔记一)
下一篇: 刷题 9/14
推荐阅读
-
岛屿数量(经典 DFS 和 BFS 高频题 商汤、字节面试题)
-
LeetCode岛屿的最大面积(DFS)
-
Leetcode 200. Number of Islands (python+cpp)
-
200 Number of Islands——leetcode
-
岛屿数量-数组200-python
-
LeetCode 队列与BFS--岛屿的数量
-
leetcode题解:91.Decode Ways(解码方式数量)
-
力扣 LeetCode-CN 第200场双周赛
-
【LeetCode】周赛纪录(八)第199场周赛20200726 重新排列字符串 灯泡开关 IV 好叶子节点对的数量 压缩字符串 II
-
【LeetCode】726. 原子的数量