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
| public class NumberofIslands { public int numIslands(char[][] grid) { if (grid.length == 0) return 0; int m = grid.length-1; if (grid[0].length == 0) return 0; int n = grid[0].length-1; int count = 0;
for(int i=0; i<=m; i++) { for (int j=0; j<=n; j++) { if (grid[i][j] == '1') { removeIsland(grid, i, j); count ++; } } } return count; }
public void removeIsland(char[][] grid, int i, int j) { if (i<0 || j<0 || i>grid.length-1 || j>grid[0].length-1) return ; if (grid[i][j] == '0') return;
grid[i][j] = '0'; removeIsland(grid, i-1,j); removeIsland(grid, i+1, j); removeIsland(grid, i, j-1); removeIsland(grid, i, j+1); } }
|