豆油瓶代码 做完题才写出来的 大家看看能不能通过。亲测了几个都过了。
import java.util.ArrayList;
import java.util.Scanner;
public class Main1 {
private static ArrayList<Node> list = new ArrayList<>();
private static int n;
private static int[][] juzhen;
private static int result = 0;
public static class Node {
private int data;
private boolean isvisited;
Node(int data, boolean isvisited) {
this.data = data;
this.isvisited = isvisited;
}
public void setIsvisited(boolean isvisited) {
this.isvisited = isvisited;
}
}
public static void deepbianli(int nodeIndex){
for(int i =nodeIndex; i< n; i++){
if (list.get(i).isvisited){
}else {
Node node = list.get(nodeIndex);
node.setIsvisited(true);
for (int j = 0; j < n; j++){
int weight = juzhen[i][j];
if(weight >= 3){
if(list.get(j).isvisited){}
else{
deepbianli(j);
}
}
}
}
}
}
public void setN(int n) {
this.n = n;
}
public void setJuzhen(int[][] juzhen) {
this.juzhen = juzhen;
}
// public void setN(int n) {
public static void main(String[] args) {
Main1 m1 = new Main1();
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int[][] juzhen = new int[n][n];
for(int i = 0; i< n; i++){
for(int j = 0 ; j< n; j++){
juzhen[i][j] = sc.nextInt();
}
}
for (int i = 0; i< n; i++){
list.add(new Node(i+1,false));
}
m1.setN(n);
m1.setJuzhen(juzhen);
for (int i = 0; i<n;i++){
if (list.get(i).isvisited){
}else {
deepbianli(i);
result++;
}
}
System.out.println(result);
}
}