岛屿的数量
Input: 11000 11000 00100 00011 Output: 3
public int numIslands(char[][] grid){ if(grid==null || grid.length==0){ return 0; } int islandNum = 0; for(int i=0;i<grid.length;i++){ for(int j=0;j<grid[0].length;j++){ if(grid[i][j]!='0'){ dfs(grid, i, j); islandNum++; } } } return islandNum; } private void dfs(char[][] grid,int i,int j){ if(i<0||i>=grid.length||j<0||j>grid[0].length||grid[i][j]=='0'){ return; } grid[i][j] = '0'; int[][] direction = {{0,1},{0,-1},{1,0},{-1,0}}; for(int[] d :direction){ dfs(grid, i+d[0], j+d[1]); } }