岛屿数量

https://leetcode-cn.com/problems/number-of-islands/

  1. class Solution {
  2. int r;
  3. int c;
  4. int count = 0;
  5. public int numIslands(char[][] grid) {
  6. if(grid == null)
  7. return 0;
  8. r = grid.length;
  9. c = grid[0].length;
  10. for(int i = 0; i < r; i++){
  11. for(int j = 0; j < c; j++){
  12. if(grid[i][j] == '1'){
  13. count++;
  14. dfs(grid, i, j);
  15. }
  16. }
  17. }
  18. return count;
  19. }
  20. public void dfs(char[][] grid, int x, int y){
  21. if(x < 0 || y < 0 || x >= r || y>=c || grid[x][y] == '0')
  22. return;
  23. grid[x][y] = '0';
  24. dfs(grid, x + 1, y);
  25. dfs(grid, x, y + 1);
  26. dfs(grid, x - 1, y);
  27. dfs(grid, x, y - 1);
  28. }
  29. }