最后一个用例没过,求指导!!!!!!!
DFS深搜
import java.util.Scanner;
public class Main {
static char[][] map = new char[1005][1005];
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
for(int i = 1;i<=n;i++){
String s = sc.next();
for(int j = 1;j<=n;j++){
map[i][j] = s.charAt(j-1);
}
}
for(int i = 1;i<=n;i++){
for(int j = 1;j<=n;j++){
if(map[i][j] == '#' && map[i-1][j] != '.' && map[i][j-1] != '.' && map[i+1][j] != '.' && map[i][j+1] != '.'){
dfs(i,j,n);
}
}
}
int res = 0;
for(int i = 1;i<=n;i++){
for(int j = 1;j<=n;j++){
if(map[i][j] == '#'){
dfs(i,j,n);
res++;
}
}
}
System.out.println(res);
}
public static void dfs(int i,int j,int n){
if(i < 1 || i > n || j < 1 || j > n){
return;
}
if(map[i][j] == '.'){
return;
}
map[i][j] = '.';
dfs(i,j-1,n);
dfs(i,j+1,n);
dfs(i-1,j,n);
dfs(i+1,j,n);
}
}