图论 判断是否有环

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


如果是一个无向图,其实可以直接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
相关推荐
IT成长日记19 分钟前
【LVS入门宝典】LVS调度算法轮询(RR)深度解析:从原理到实战的公平调度之道
算法·lvs·rr·轮询调度算法
NAGNIP38 分钟前
一文搞懂量化、剪枝和知识蒸馏都是什么?
算法
点云SLAM1 小时前
GTSAM 中自定义因子(Custom Factor)的详解和实战示例
算法·机器人·slam·后端优化·gtsam·gtsam自定义因子·因子图
萘柰奈2 小时前
LeetCode刷题记录----62.不同路径(Medium)
算法·leetcode·职场和发展
阳光明媚sunny2 小时前
爬楼梯算法java实现
算法·动态规划
贝塔实验室2 小时前
LDPC码的概念
科技·学习·程序人生·算法·学习方法·程序员创富·改行学it
weixin_307779132 小时前
矩形势阱(V(x) = -H for |x|≤L)的束缚态能级求解与宇称分类
算法
MMjeaty3 小时前
数据结构——栈和队列
数据结构·算法
机器学习之心8 小时前
多目标鲸鱼优化算法(NSWOA),含46种测试函数和9个评价指标,MATLAB实现
算法·matlab·多目标鲸鱼优化算法·46种测试函数·9个评价指标
max5006009 小时前
基于Meta Llama的二语习得学习者行为预测计算模型
人工智能·算法·机器学习·分类·数据挖掘·llama