【图论】有向无环图中一个节点的所有祖先 - 邻接表(DFS)

文章目录

题目:有向无环图中一个节点的所有祖先

2192. 有向无环图中一个节点的所有祖先

题目描述

代码与解题思路

go 复制代码
func getAncestors(n int, edges [][]int) [][]int {
    g := make([][]int, n)
    for _, e := range edges {
        x, y := e[0], e[1]
        g[x] = append(g[x], y)
    }
    ans := make([][]int, n)
    vis := make([]int, n)
    start := 0
    var dfs func(int)
    dfs = func(x int) {
        vis[x] = start+1 // 因为 vis 初始是 0, 所以要 +1 错开
        for _, v := range g[x] {
            if vis[v] != start+1 {
                ans[v] = append(ans[v], start)
                dfs(v)
            }
        }
    }
    for start < n {
        dfs(start)
        start++
    }
    return ans
}

采用思路:灵神的题解

这道题的核心就在于如何解决重复遍历的问题,用什么方法都做

相关推荐
郝学胜-神的一滴4 分钟前
李航《机器学习方法》全面解析与高效学习指南
人工智能·python·算法·机器学习·数学建模·scikit-learn
CS创新实验室5 分钟前
奈奎斯特定理:信号处理与通信领域的基石理论
计算机网络·算法·信号处理·奈奎斯特定理
雪花desu9 分钟前
【Hot100-Java简单】/LeetCode 283. 移动零:两种 Java 高效解法详解
数据结构·python·算法
随意起个昵称9 分钟前
【做题总结】顺子(双指针)
c++·算法
一杯咖啡Miracle16 分钟前
UV管理python环境,打包项目为docker流程
python·算法·docker·容器·uv
玉树临风ives21 分钟前
atcoder ABC438 题解
数据结构·算法
算法与编程之美29 分钟前
探索不同的损失函数对分类精度的影响
人工智能·算法·机器学习·分类·数据挖掘
-Excalibur-34 分钟前
ARP RIP OSPF BGP DHCP以及其他计算机网络当中的通信过程和广播帧单播帧的整理
c语言·网络·python·学习·tcp/ip·算法·智能路由器
刃神太酷啦35 分钟前
Linux 底层核心精讲:环境变量、命令行参数与程序地址空间全解析----《Hello Linux!》(7)
linux·运维·服务器·c语言·c++·chrome·算法
前端小L36 分钟前
贪心算法专题(五):覆盖范围的艺术——「跳跃游戏」
数据结构·算法·游戏·贪心算法