1
# Runtime: 1782 ms (Top 87.91%) | Memory: 16.6 MB (Top 91.21%)3
def minMalwareSpread(self, graph: List[List[int]], initial: List[int]) -> int:14
min_index = initial[0]15
for i in range(len(initial)):18
for j in range(len(initial)):21
if uf.find(initial[i]) == uf.find(initial[j]):24
cur_remove = uf.rank[uf.find(initial[i])]25
if max_remove < cur_remove:26
max_remove = cur_remove27
min_index = initial[i]33
def __init__(self, size):41
if x != self.parent[x]:42
x = self.find(self.parent[x])45
def union(self, x, y):46
px, py = self.find(x), self.find(y)49
if self.rank[px] >= self.rank[py]:51
self.rank[px] += self.rank[py]54
self.rank[py] += self.rank[px]