Leetcode 547 Solution

This article provides solution to leetcode question 547 (number-of-provinces)

https://leetcode.com/problems/number-of-provinces

Solution

class FindUnionSet: def __init__(self, n): self.n = n self.parents = list(range(n))
def union(self, i, j): ri = self.find(i) rj = self.find(j) self.parents[ri] = rj
def find(self, i): if self.parents[i] != i: self.parents[i] = self.find(self.parents[i]) return self.parents[i]
class Solution: def findCircleNum(self, isConnected: List[List[int]]) -> int: n = len(isConnected)
fmset = FindUnionSet(n)
for i in range(n): for j in range(n): if isConnected[i][j]: fmset.union(i, j)
roots = set() for i in range(n): roots.add(fmset.find(i))
return len(roots)