knakul853

Untitled

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