深度优先搜索
import java.util.*;
public class Solution {
/**
* 判断岛屿数量
* @param grid char字符型二维数组
* @return int整型
*/
public int solve (char[][] grid) {
// write code here
int m = grid.length;
if(m == 0)
return 0;
int n = grid[0].length;
int count = 0;
for(int i =0;i<m;i++){
for(int j = 0;j< n;j++){
if(grid[i][j] == '1'){
count++;
dfs(grid,i,j);
}
}
}
return count;
}
public void dfs(char[][] grid,int i,int j){
int n = grid.length;
int m = grid[0].length;
grid[i][j] ='0';
if(i-1>=0&&grid[i-1][j]=='1'){
dfs(grid,i-1,j);
}
if(j+1<m&&grid[i][j+1]=='1'){
dfs(grid,i,j+1);
}
if(i+1<n&&grid[i+1][j]=='1'){
dfs(grid,i+1,j);
}
if(j-1>=0&&grid[i][j-1]=='1'){
dfs(grid,i,j-1);
}
}
}