Friend Circles
标准并查集问题,很久没错了第一次居然没过... 并查集一类的问题真的思路清晰题目明确,做起来很爽啊
class Solution(object):
def findCircleNum(self, M):
"""
:type M: List[List[int]]
:rtype: int
"""
n = len(M)
parent = [-1] * n
result = n
for i in xrange(n):
for j in xrange(i + 1, n):
if M[i][j]:
a = self.find(i, parent)
b = self.find(j, parent)
if a != b:
result -= 1
parent[a] = b
return result
def find(self, node, parent):
if parent[node] == -1:
return node
parent[node] = self.find(parent[node], parent)
return parent[node]