static int n;
static int m;
static char str[][] = new char[101][101];
static int count;
public static void main(String[] args) {
Scanner cin = new Scanner(System.in);
while(cin.hasNextInt()){
n = cin.nextInt();
m = cin.nextInt();
if(n==0||m==0) break;
str = new char[n][m];
for (int i = 0; i < n; i++) {
String string = cin.next();
for (int j = 0; j < string.length(); j++) {
str[i][j] = string.charAt(j);
}
}
count = 0;
for (int i = 0; i < n; i++) {
for (int j = 0; j < m; j++) {
if(str[i][j]=='@') {
count++;
DFS(i,j);
}
}
}
System.out.println(count);
}
}
private static void DFS(int x, int y) {
if(x<0 || y<0 || x>=n || y>=m) return; //到达边界了
if(str[x][y]=='@') {
str[x][y]='*';
for (int i = -1; i <=1; i++) {
for (int j = -1; j <=1; j++) {
if(i!=0||j!=0){
DFS(x+i,y+j);
}
}
}
}
}HDU1241油田
最新推荐文章于 2019-05-20 16:37:49 发布
本文提供了一个使用Java实现的深度优先搜索(DFS)算法示例,通过输入字符矩阵查找并标记所有出现的特定字符('@'),并统计独立的字符组数量。该算法适用于解决网格上的连通区域计数等问题。
584

被折叠的 条评论
为什么被折叠?



