1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54
|
public class NumberOfIslands { public int numIslands(char[][] grid) { if (grid == null || grid.length == 0 || grid[0].length == 0) { return 0; } int count = 0; for (int i = 0; i < grid.length; i++) { for (int j = 0; j < grid[0].length; j++) { if (grid[i][j] == '1') { count++; fillHelper(grid, i, j); } } } return count; } private void fillHelper(char[][] grid, int i, int j) { if (i < 0 || j < 0 || i >= grid.length || j >= grid[0].length) { return; } if (grid[i][j] != '1') { return; } grid[i][j] = '2'; fillHelper(grid, i - 1, j); fillHelper(grid, i, j - 1); fillHelper(grid, i + 1, j); fillHelper(grid, i, j + 1); } }
|