0
点赞
收藏
分享

微信扫一扫

leetcode:547. 省份数量【简单dfs求联通分量模板】

深夜瞎琢磨 2022-05-04 阅读 52

在这里插入图片描述

分析

简单求联通分量
用visit + dfs + cnt即可

ac code

class Solution:
    def findCircleNum(self, isConnected: List[List[int]]) -> int:
        # 联通分量的个数
        n = len(isConnected)
        visit = [False] * n
        #print(n)

        cnt = 0
        def dfs(node):
            nonlocal visit
            #print(node, visit)
            visit[node] = True
            lst = isConnected[node]
        
            #print(node)
            for i in range(n):
                #print(i, lst[i], visit[i])
                if i != node and lst[i] == 1 and visit[i] is False:
                    #print(node)
                    dfs(i)
        
        for i in range(n):
            if visit[i] is False:
                dfs(i)
                cnt += 1
        
        return cnt

总结

简单求联通分量

举报

相关推荐

0 条评论