题解 | #检测循环依赖#

检测循环依赖

https://www.nowcoder.com/practice/8dc02ad98553432a90affc3a0484910b

function findOrder( prerequisites ,  n ) {
    // write code here
    // 构建图
    const res = []
    let hasCycle = false
    const path = new Array(n).fill(false)
    const visted = new Array(n).fill(false)
    const buildGraph = (prerequisites,n) => {
        const graph = new Array(n).fill(null).map(()=>new Array())
        for(let i=0;i<prerequisites.length;i++) {
            const edge = prerequisites[i]
            const from = edge[1],to = edge[0]
            graph[from].push(to)
        }
        return graph
    }
    const traverse = (graph,v) => {
        if(path[v]) hasCycle = true
        if(visted[v] || hasCycle) return 
        visted[v] = true
        path[v] = true
        for(const w of graph[v]) {
            traverse(graph,w)
        }
        res.push(v)
        path[v] = false
    }
    const graph = buildGraph(prerequisites,n)
    for(let i=0;i<n;i++) {
        traverse(graph,i)
    }
    if(hasCycle) return []
    res.reverse()
    return res
}

全部评论

相关推荐

不愿透露姓名的神秘牛友
04-23 19:42
可乐不加冰777:匿名了,还写联系方式
点赞 评论 收藏
分享
咩咩子_:项目和图形引擎岗没啥关系,最好还是项目和岗位有相关度好点,不然真有面也不一定会问很多
点赞 评论 收藏
分享
吴offer选手:学到了,下次面试也放张纸在电脑上,不然老是忘记要说哪几个点
点赞 评论 收藏
分享
bg&nbsp;为&nbsp;985&nbsp;本应届生,方向是嵌入式软件。纠结了很久,两边都不太了解,恳请各位大佬帮选,非常感谢🙏。
ResourceUtilization:求稳海能达,趁着年轻赚它一笔就relink吧,有个疑惑,怎么睿连同岗位多这么多base原因吗
点赞 评论 收藏
分享
评论
1
1
分享

创作者周榜

更多
牛客网
牛客企业服务