1
# Runtime: 772 ms (Top 55.10%) | Memory: 34.3 MB (Top 72.08%)7
def makeConnected(self, n, connections):10
:type connections: List[List[int]]13
if len(connections) < n - 1:15
self.parents = [i for i in range(n)]16
self.count = [1 for _ in range(n)]17
for connection in connections:18
a, b = connection[0], connection[1]20
return len({self.find(i) for i in range(n)}) - 127
while node != self.parents[node]:28
node = self.parents[node]31
def union(self, a, b):37
a_parent, b_parent = self.find(a), self.find(b)38
a_size, b_size = self.count[a_parent], self.count[b_parent]40
if a_parent != b_parent:42
self.parents[a_parent] = b_parent43
self.count[b_parent] += a_size45
self.parents[b_parent] = a_parent46
self.count[a_parent] += b_size