leetcode 200. 岛屿数量
程序员文章站
2024-03-18 09:07:46
...
其实很简单,用dfs很快解出
class Solution {
public:
int ans;
void dfs(vector<vector<char>>& grid,vector<vector<int>>& visit,int i,int j,int n,int m){
if(i<0||i>=n||j<0||j>=m||grid[i][j]=='0') return;
grid[i][j]='0';
dfs(grid,visit,i+1,j,n,m);
dfs(grid,visit,i-1,j,n,m);
dfs(grid,visit,i,j-1,n,m);
dfs(grid,visit,i,j+1,n,m);
}
int numIslands(vector<vector<char>>& grid) {
if(!grid.size()) return ans;
int n=grid.size(),m=grid[0].size();
if(!n||!m) return ans;
vector<vector<int>> visit(n+1,vector<int>(m+1,0));
for(int i=0;i<n;i++)
for(int j=0;j<m;j++)
if(!visit[i][j]&&grid[i][j]=='1'){
visit[i][j]==1;
++ans;
dfs(grid,visit,i,j,n,m);}
return ans;
}
};
结果:
上一篇: 啦啦外卖40.0开源版最新ui设计+app+小程序
下一篇: LeetCode:200. 岛屿数量
推荐阅读