文章目录
- 题目:有向无环图中一个节点的所有祖先
- 题目描述
- 代码与解题思路
题目:有向无环图中一个节点的所有祖先
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
}
采用思路:灵神的题解
这道题的核心就在于如何解决重复遍历的问题,用什么方法都做