From 2eb07a5211b0240928e631923fc6fee3a2d5248c Mon Sep 17 00:00:00 2001 From: kkunkka Date: Thu, 25 Sep 2025 22:55:34 +0800 Subject: [PATCH] kk --- .../java/com/dota/graph/_2685/Solution.java | 47 +++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 src/main/java/com/dota/graph/_2685/Solution.java diff --git a/src/main/java/com/dota/graph/_2685/Solution.java b/src/main/java/com/dota/graph/_2685/Solution.java new file mode 100644 index 0000000..75fcc7f --- /dev/null +++ b/src/main/java/com/dota/graph/_2685/Solution.java @@ -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[] 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[] g) { + var set = 1; + book[i] = true; + for (Integer j : g[i]) { + if (!book[j]) set += dfs(book, j, g); + } + return set; + } +} \ No newline at end of file