kk
This commit is contained in:
47
src/main/java/com/dota/graph/_2685/Solution.java
Normal file
47
src/main/java/com/dota/graph/_2685/Solution.java
Normal file
@@ -0,0 +1,47 @@
|
|||||||
|
package com.dota.graph._2685;
|
||||||
|
|
||||||
|
import java.util.*;
|
||||||
|
|
||||||
|
class Solution {
|
||||||
|
public static void main(String[] args) {
|
||||||
|
new Solution().countCompleteComponents(6, new int[][]{{0,1},{0,2},{1,2},{3,4}});
|
||||||
|
}
|
||||||
|
public int countCompleteComponents(int n, int[][] edges) {
|
||||||
|
List<Integer>[] g = new ArrayList[n];
|
||||||
|
Arrays.setAll(g, i -> {
|
||||||
|
var list = new ArrayList<>();
|
||||||
|
list.add(i);
|
||||||
|
return list;
|
||||||
|
});
|
||||||
|
|
||||||
|
var book = new boolean[n];
|
||||||
|
for (int[] edge : edges) {
|
||||||
|
g[edge[0]].add(edge[1]);
|
||||||
|
g[edge[1]].add(edge[0]);
|
||||||
|
}
|
||||||
|
|
||||||
|
var sum = 0;
|
||||||
|
for (int i = 0; i < n; i++) {
|
||||||
|
if (!book[i]) {
|
||||||
|
var size = dfs(book, i, g);
|
||||||
|
int temp = 0;
|
||||||
|
for (Integer integer : g[i]) {
|
||||||
|
temp += g[integer].size();
|
||||||
|
}
|
||||||
|
if (size * g[i].size() == temp) {
|
||||||
|
sum++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return sum;
|
||||||
|
}
|
||||||
|
|
||||||
|
int dfs(boolean[] book, int i, List<Integer>[] g) {
|
||||||
|
var set = 1;
|
||||||
|
book[i] = true;
|
||||||
|
for (Integer j : g[i]) {
|
||||||
|
if (!book[j]) set += dfs(book, j, g);
|
||||||
|
}
|
||||||
|
return set;
|
||||||
|
}
|
||||||
|
}
|
Reference in New Issue
Block a user