200. 岛屿数量DFSclass Solution { public int numIslands(char[][] grid) { int ans 0; for(int i 0;igrid.length;i){ for(int j 0;jgrid[0].length;j){ if(grid[i][j]1){ dfs(grid,i,j); ans; } } } return ans; } private void dfs(char[][] grid,int i,int j){ //是否越界被选过 if(i0 || igrid.length || j0 || jgrid[0].length || grid[i][j]!1){ return; } //标记为已选过 grid[i][j] 2; //递归 dfs(grid,i1,j); dfs(grid,i-1,j); dfs(grid,i,j1); dfs(grid,i,j-1); } }时间复杂度O(mn) 其中 m 和 n 分别是 grid 的行数和列数空间复杂度O(mn)