遍历陆地,没遍历一次 岛屿数加一,同时删除关联的岛屿:
public class Solution {
/**
* 判断岛屿数量
* @param grid char字符型二维数组
* @return int整型
*/
public int solve (char[][] grid) {
int result = 0;
for(int i = 0; i < grid.length;i++){
for(int j = 0;j < grid[i].length;j++){
if(grid[i][j] == '1'){
clearRoad(grid,i,j);
result+=1;
}
}
}
return result;
}
void clearRoad(char[][] grid,int x,int y){
if(x<0 || y<0 ||x > grid.length-1 || y>grid[0].length-1 || grid[x][y]=='0') return;
grid[x][y] = '0';
clearRoad(grid,x-1,y);
clearRoad(grid,x+1,y);
clearRoad(grid,x,y-1);
clearRoad(grid,x,y+1);
}
}