图论 判断是否有环

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


如果是一个无向图,其实可以直接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
相关推荐
军训猫猫头2 小时前
100.Complex[]同时储存实数和虚数两组double的数组 C#例子
算法·c#·信号处理
int型码农2 小时前
数据结构第八章(五)-外部排序和败者树
c语言·数据结构·算法·排序算法
好易学·数据结构3 小时前
可视化图解算法52:数据流中的中位数
数据结构·算法·leetcode·面试·力扣·笔试·牛客
dying_man3 小时前
LeetCode--35.搜索插入位置
算法·leetcode
点云SLAM4 小时前
PyTorch 中Tensor常用数据结构(int, list, numpy array等)互相转换和实战示例
数据结构·人工智能·pytorch·算法·list·numpy·tensor
Jo乔戈里6 小时前
计量经济学(复习/自用/未完)
算法
苦学LCP的小猪6 小时前
LeeCode94二叉树的中序遍历
数据结构·python·算法·leetcode
实习生小黄6 小时前
基于扫描算法获取psd图层轮廓
前端·javascript·算法
CYRUS_STUDIO7 小时前
破解 VMP+OLLVM 混淆:通过 Hook jstring 快速定位加密算法入口
android·算法·逆向