题解 | #岛屿数量#
岛屿数量
https://www.nowcoder.com/practice/0c9664d1554e466aa107d899418e814e
import java.util.*; public class Solution { /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * 判断岛屿数量 * @param grid char字符型二维数组 * @return int整型 */ public int solve (char[][] grid) { int res=0; int row=grid.length; int col=grid[0].length; for(int i=0;i<row;i++){ for(int j=0;j<col;j++){ if(grid[i][j]=='1'){ res+=1; //查看一下周围岛屿的情况 dfs(grid,i,j); } } } return res; } public void dfs(char[][]grid,int i,int j){ //判断是否是合法位置 if(!isRight(grid,i,j)){ return ; } //不是陆地 if(grid[i][j]!='1'){ return ; } //更改一下状态 grid[i][j]='2'; //遍历一下周围的状态 dfs(grid,i,j-1); dfs(grid,i,j+1); dfs(grid,i-1,j); dfs(grid,i+1,j); } //用来判断遍历到的数组位置是否合法 public boolean isRight(char[][]grid,int i,int j){ return i>=0&&i<grid.length &&j>=0&&j<grid[0].length; } }