本文主要是介绍【图论】有向无环图中一个节点的所有祖先 - 邻接表(DFS),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
文章目录
- 题目:有向无环图中一个节点的所有祖先
- 题目描述
- 代码与解题思路
题目:有向无环图中一个节点的所有祖先
2192. 有向无环图中一个节点的所有祖先
题目描述
代码与解题思路
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 := 0var 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
}
采用思路:灵神的题解
这道题的核心就在于如何解决重复遍历的问题,用什么方法都做
这篇关于【图论】有向无环图中一个节点的所有祖先 - 邻接表(DFS)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!