Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit f72c149

Browse files
authored
Merge pull request #374 from ironnicko/main
Added Python Code for Number of Connected Components In An Undirected…
2 parents aa43937 + 4a8cade commit f72c149

File tree

1 file changed

+31
-0
lines changed

1 file changed

+31
-0
lines changed
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
2+
class Solution:
3+
def count_components(self, n: int, edges: List[List[int]]) -> int:
4+
parent = [i for i in range(n)]
5+
rank = [1] * n
6+
7+
def find_union(node: int) -> None:
8+
result = node
9+
while result != parent[result]:
10+
parent[result] = parent[parent[result]] # path compression
11+
result = parent[result]
12+
return result
13+
14+
def union(node_1: int, node_2: int):
15+
parent_1 = find_union(node_1)
16+
parent_2 = find_union(node_2)
17+
if parent_1 == parent_2:
18+
return 0
19+
if rank[parent_2] < rank[parent_1]:
20+
parent[parent_1] = parent_2
21+
rank[parent_2] += rank[parent_1]
22+
else:
23+
parent[parent_2] = parent_1
24+
rank[parent_1] += rank[parent_2]
25+
return 1
26+
27+
result = n
28+
for node_1, node_2 in edges:
29+
result -= union(node_1, node_2)
30+
return result
31+

0 commit comments

Comments
 (0)