Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class Solution {
- public:
- void dfs(vector<vector<char>> &a,vector<vector<int>> &vis,int x,int y)
- {
- int r=a.size();
- int c=a[0].size();
- if(x>=r || x<0 || y>=c || y<0 || vis[x][y]==1 || a[x][y]=='0')
- return;
- vis[x][y]=1;
- dfs(a,vis,x-1,y);
- dfs(a,vis,x,y+1);
- dfs(a,vis,x,y-1);
- dfs(a,vis,x+1,y);
- }
- int numIslands(vector<vector<char>>& a) {
- int r=a.size();
- if(r==0)
- return 0;
- int c=a[0].size();
- if(c==0)
- return 0;
- vector<vector<int>> vis(r,vector<int>(c,0));
- int count=0;
- for(int i=0;i<r;i++)
- {
- for(int j=0;j<c;j++)
- {
- if(a[i][j]=='1' && vis[i][j]==0)
- {
- dfs(a,vis,i,j);
- count++;
- }
- }
- }
- return count;
- }
- };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement