Advertisement
Guest User

200. Number of Islands | Time: O (n) | Space: O(n)

a guest
Aug 23rd, 2019
107
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 0.97 KB | None | 0 0
  1. // Problem: https://leetcode.com/problems/number-of-islands
  2. // Solution: https://www.youtube.com/watch?v=o8S2bO3pmO4
  3.  
  4.  
  5. class Solution {
  6.     public int numIslands(char[][] grid) {
  7.         if (grid == null || grid.length == 0) {
  8.             return 0;
  9.         }
  10.        
  11.         int numOfIslands = 0;
  12.        
  13.         for(int i = 0; i < grid.length; i++) {
  14.             for(int j = 0; j < grid[i].length; j++) {
  15.                 if(grid[i][j] == '1') {
  16.                     numOfIslands += dfs(grid, i, j);
  17.                 }
  18.             }
  19.         }
  20.        
  21.         return numOfIslands;
  22.     }
  23.    
  24.     public int dfs(char[][] grid, int i, int j) {
  25.         if (i < 0 || i >= grid.length || j < 0 || j >= grid[i].length || grid[i][j] == '0') {
  26.             return 0;
  27.         }
  28.    
  29.         grid[i][j] = '0';
  30.        
  31.         dfs(grid, i + 1, j);
  32.         dfs(grid, i - 1, j);
  33.         dfs(grid, i, j + 1);
  34.         dfs(grid, i, j - 1);
  35.        
  36.         return 1;
  37.     }
  38. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement