图论 判断是否有环

前言:有点忘记是怎么判断一个图中是否是有环


如果是一个无向图,其实可以直接dfs,加上一个vis数组来一起判断

如果是有向图呢,

python 复制代码
class Solution:
    def canFinish(self, numCourses: int, prerequisites: List[List[int]]) -> bool:
        n = numCourses
        ed = [[] for _ in range(n)]
        for x in prerequisites:
            u,v = x
            ed[v].append(u)

        cnt = [0]*(n)
        flag = False
        def dfs(x):
            nonlocal flag
            cnt[x] = 1
            if flag:
                return
            for v in ed[x]:
                if cnt[v] == 0:
                    dfs(v)
                if cnt[v] == 1:
                    flag = True
                    return
            cnt[x] = 2
        
        for i in range(n):
            if cnt[i] == 0:
                dfs(i)
        return not flag
相关推荐
Victory_orsh1 分钟前
“自然搞懂”深度学习系列(基于Pytorch架构)——01初入茅庐
人工智能·pytorch·python·深度学习·算法·机器学习
88号技师3 分钟前
2025年8月SCI-汉尼拔·巴卡优化算法Hannibal Barca optimizer-附Matlab免费代码
开发语言·人工智能·算法·数学建模·matlab·优化算法
龙腾AI白云11 分钟前
大模型-高效优化技术全景解析:微调 量化 剪枝 梯度裁剪与蒸馏 上
算法
地平线开发者24 分钟前
新版 perf 文件解读与性能分析
算法·自动驾驶
lingran__28 分钟前
算法沉淀第五天(Registration System 和 Obsession with Robots)
c++·算法
chrispang29 分钟前
浅谈 Tarjan 算法
算法
莱茶荼菜31 分钟前
一个坐标转换
c++·算法
西阳未落1 小时前
多模态实体识别:跨越模态鸿沟的智能技术
算法
~kiss~1 小时前
膨胀算法去除低谷噪声
人工智能·算法·计算机视觉
Moniane1 小时前
Web爬虫指南
爬虫·算法