图论 判断是否有环

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


如果是一个无向图,其实可以直接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
相关推荐
来荔枝一大筐15 分钟前
力扣 寻找两个正序数组的中位数
算法
算法与编程之美26 分钟前
理解Java finalize函数
java·开发语言·jvm·算法
地平线开发者1 小时前
LLM 训练基础概念与流程简介
算法·自动驾驶
点云SLAM1 小时前
弱纹理图像特征匹配算法推荐汇总
人工智能·深度学习·算法·计算机视觉·机器人·slam·弱纹理图像特征匹配
星释1 小时前
Rust 练习册 :Matching Brackets与栈数据结构
数据结构·算法·rust
地平线开发者1 小时前
Camsys 时间戳信息简介
算法·自动驾驶
星释1 小时前
Rust 练习册 :Luhn与校验算法
java·算法·rust
代码雕刻家1 小时前
C语言中关于类型转换不匹配的解决方案
c语言·开发语言·算法
星星的月亮叫太阳2 小时前
large-scale-DRL-exploration 代码阅读 总结
python·算法
王哈哈^_^2 小时前
YOLOv11视觉检测实战:安全距离测算全解析
人工智能·数码相机·算法·yolo·计算机视觉·目标跟踪·视觉检测