我就做出一道题 其他都凉了,宿舍人又是唱歌又是放歌,还有洗衣服看电视的,根本弄不成。
气的肚子疼嘞!
import java.util.Scanner;
public class Main {
static boolean[][] boo;
static int m,n;
static int[][] zuowei;
static int count=0;
static int num=0;
static int max=0;
public static void main(String[] args) {
Scanner scanner=new Scanner(System.in);
String mn = scanner.nextLine();
String[] split = mn.split(",");
m=Integer.parseInt(split[0]);
n=Integer.parseInt(split[1]);
zuowei=new int[m][n];
boo=new boolean[m][n];
for (int i = 0; i < m; i++) {
String nextLine = scanner.nextLine();
String[] line= nextLine.split(",");
for (int j = 0; j < line.length; j++) {
zuowei[i][j]=Integer.parseInt(line[j]);
}
}
for (int i = 0; i < zuowei.length; i++) {
for (int j = 0; j < zuowei[i].length; j++) {
int findnext = findnext(i,j);
count+=findnext;
}
}
System.out.println(count+","+max);
}
public static int findnext(int i,int j) {
if(zuowei[i][j]==1&&!boo[i][j]) {
boo[i][j]=true;
num++;
//上下
if(i!=m-1&&zuowei[i+1][j]==1&&!boo[i+1][j]) {
findnext(i+1, j);
}
if(i!=0&&zuowei[i-1][j]==1&&!boo[i-1][j]) {
findnext(i-1, j);
}
//左右
if(j!=n-1&&zuowei[i][j+1]==1&&!boo[i][j+1]) {
findnext(i, j+1);
}
if(j!=0&&zuowei[i][j-1]==1&&!boo[i][j-1]) {
findnext(i, j-1);
}
//斜的
if(i!=0&&j!=0&&zuowei[i-1][j-1]==1&&!boo[i-1][j-1]) {
findnext(i-1, j-1);
}
if(i!=0&&j!=n-1&&zuowei[i-1][j+1]==1&&!boo[i-1][j+1]) {
findnext(i-1, j+1);
}
if(i!=m-1&&j!=n-1&&zuowei[i+1][j+1]==1&&!boo[i+1][j+1]) {
findnext(i+1, j+1);
}
if(i!=m-1&&j!=0&&zuowei[i+1][j-1]==1&&!boo[i+1][j-1]) {
findnext(i+1, j-1);
}
}else {
if(max<num) {
max=num;
}
num=0;
boo[i][j]=true;
return 0;
}
return 1;
}
}