Advertisement
knakul853

Untitled

Jul 24th, 2020
212
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.01 KB | None | 0 0
  1. class Solution {
  2. public:
  3.     int numIslands(vector<vector<char>>& grid) {
  4.         if(grid.empty())return 0;
  5.        
  6.         int n = (int)grid.size();
  7.         int m = grid[0].size();
  8.        
  9.         vector<vector<int>>visit(n, vector<int>(m, 0));
  10.         int ans = 0;
  11.        
  12.         for(int i=0;i<n;i++)
  13.         {
  14.             for(int j=0;j<m;j++)
  15.             {
  16.                 if(!visit[i][j] && grid[i][j]=='1')
  17.                 {
  18.                     dfs(i, j, visit, grid);
  19.                     ans++;
  20.                 }
  21.             }
  22.         }
  23.        
  24.         return ans;
  25.    
  26.        
  27.     }
  28.    
  29.     void dfs(int i,int j, vector<vector<int>>&visit, vector<vector<char>>&g)
  30.     {
  31.         if(i < 0 || j < 0 || i>= (int)g.size() || j >= (int)g[0].size()) return;
  32.         if(g[i][j] == '0' || visit[i][j]) return;
  33.        
  34.         visit[i][j] = 1;
  35.        
  36.         dfs(i, j-1, visit, g);
  37.         dfs(i, j+1, visit, g);
  38.         dfs(i-1, j, visit, g);
  39.         dfs(i+1, j, visit, g);
  40.     }
  41. };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement