Advertisement
SalmaYasser

Number of Islands

Dec 18th, 2019
112
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.20 KB | None | 0 0
  1. class Solution {
  2. public:
  3. bool valid (int r , int c , int rows, int cols)
  4. {
  5. return ( (r >= 0 && r < rows ) && (c >= 0 && c < cols));
  6. }
  7. void dfs (vector<vector<char>>& grid, int r , int c , int rows, int cols)
  8. {
  9.  
  10. if (!valid (r, c, rows, cols) || grid[r][c] == '0')
  11. return;
  12. //cout << r << c << endl;
  13. grid[r][c] = '0';
  14.  
  15. dfs (grid, r + 1, c, rows, cols);
  16. dfs (grid, r, c + 1, rows, cols);
  17. dfs (grid, r - 1, c, rows, cols);
  18. dfs (grid, r, c - 1, rows, cols);
  19.  
  20. }
  21. int numIslands(vector<vector<char>>& grid) {
  22.  
  23. int res = 0;
  24. int cols = 0;
  25. int rows = grid.size();
  26. if ( rows)
  27. cols = grid[0].size();
  28.  
  29.  
  30.  
  31. for (int r = 0 ; r < rows ; r++)
  32. {
  33. for (int c = 0 ; c < cols ; c++)
  34. {
  35.  
  36. if (grid[r][c] == '1')
  37. {
  38. res ++;
  39.  
  40. dfs (grid, r, c, rows, cols);
  41.  
  42. }
  43. }
  44. }
  45.  
  46. return res;
  47.  
  48. }
  49. };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement