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
相关推荐
自信不孤单13 小时前
UniAda核心代码详解
python·ai·大模型·tta·狄利克雷理论·证据感知
smj2302_7968265213 小时前
解决leetcode第3883题统计满足数位和数组的非递减数组数目
python·算法·leetcode
李昊哲小课13 小时前
Python办公自动化教程 - openpyxl让Excel处理变得轻松
python·信息可视化·excel
Ulyanov13 小时前
Streamlit基础入门与快速原型开发
python·架构·系统仿真
源码之屋13 小时前
计算机毕业设计:Python出行数据智能分析与预测平台 Django框架 可视化 数据分析 PyEcharts 交通 深度学习(建议收藏)✅
人工智能·python·深度学习·数据分析·django·汽车·课程设计
2301_8035545213 小时前
三大编程语言(Python/Go/C++)项目启动全解析
c++·python·golang
给自己做减法13 小时前
AI编程相关概念
人工智能·python·ai编程
郝学胜-神的一滴13 小时前
PyTorch自动微分核心解析:从原理到实战实现权重更新
人工智能·pytorch·python·深度学习·算法·机器学习
小龙报13 小时前
【Coze-AI智能体平台】Coze OpenAPI 开发手册:鉴权、接口调用与 SDK 实践
javascript·人工智能·python·深度学习·microsoft·文心一言·开源软件
databook13 小时前
理论都会,实战就废?7个分析模板,帮你打通任督二脉
python·数据挖掘·数据分析