python学习笔记7-图的建立常用技巧

题目链接

  • 题目中给了邻接链表,转为邻接矩阵
  • 初始化邻接矩阵 graph = [[] for _ in range(n)]
  • dfs() 的写法, 用visi避免重复访问,得到每个点所在的联通分量中点的个数
python 复制代码
class Solution:
    def countPairs(self, n: int, edges: List[List[int]]) -> int:
        graph = [[] for _ in range(n)]
        for x, y in edges:
            graph[x].append(y)
            graph[y].append(x)
        
        visi = [False] * n
        def dfs(x: int) -> int:
            visi[x] = True
            count = 1
            for y in graph[x]:
                if not visi[y]:
                    count += dfs(y)
            return count

        res = 0
        for i in range(n):
            if not visi[i]:
                count = dfs(i)
                res += count * (n - count)

        return res // 2
相关推荐
djjdjdjdjjdj3 分钟前
Redis怎样追踪系统执行的缓慢操作.txt
jvm·数据库·python
heiqizero3 分钟前
spark01-创建RDD
linux·前端·python
老歌老听老掉牙4 分钟前
Python 错误处理:从基础语法到工程级实践的完整指南
python·错误处理
敲上瘾7 分钟前
LangChain 入门:大模型不会的,让 Tool 来做
python·langchain·aigc·tool
深蓝海拓9 分钟前
Qt的HSL色彩系统
笔记·python·qt·学习
gmaajt9 分钟前
html怎么转astro island模式_Astro Islands如何隔离HTML组件
jvm·数据库·python
四维迁跃9 分钟前
CSS如何使用Less的Merge功能合并多个属性值_通过逗号或空格组织css参数
jvm·数据库·python
m0_741481789 分钟前
C#怎么实现全文搜索 C#如何集成Elasticsearch或Lucene.Net实现全文检索功能【数据库】
jvm·数据库·python
蓝博AI10 分钟前
基于深度学习的蔬菜识别系统,resnet50,vgg16,resnet34【pytorch框架,python代码】
人工智能·pytorch·python·深度学习·机器学习·cnn
u01091476011 分钟前
如何通过后端 API 同时向两个 Webhook 发送表单数据
jvm·数据库·python