Advertisement
nikunjsoni

tmp

Apr 25th, 2021
85
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.00 KB | None | 0 0
  1. class Solution {
  2. int maxArea = 0;
  3. int row, col;
  4.    
  5. public:
  6.     int maxAreaOfIsland(vector<vector<int>>& grid) {
  7.         row = grid.size();
  8.         col = grid[0].size();
  9.         for(int i=0; i<row; i++)
  10.             for(int j=0; j<col; j++)
  11.                 if(grid[i][j] == 1 && (i*j == 0 || i == row-1 || j == col-1))
  12.                     dfs(i, j, 0, true, grid);
  13.        
  14.         for(int i=0; i<row; i++)
  15.             for(int j=0; j<col; j++)
  16.                 if(grid[i][j] == 1)
  17.                     dfs(i, j, 0, true, grid);
  18.         return maxArea;
  19.     }
  20.    
  21.     void dfs(int r, int c, int area, bool updateArea, vector<vector<int>> &grid){
  22.         if(r<0 || r >= row || c<0 || c>=col || grid[r][c] == 0) return;
  23.         area++;
  24.         grid[r][c] = 0;
  25.         if(updateArea) maxArea = max(area, maxArea);
  26.         dfs(r+1, c, area, updateArea, grid);
  27.         dfs(r-1, c, area, updateArea, grid);
  28.         dfs(r, c+1, area, updateArea, grid);
  29.         dfs(r, c-1, area, updateArea, grid);
  30.     }
  31. };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement