如果直接使用邻接表不记录已经遍历过的数,暴力搜索超超时,所以需要拓扑排序来记录入度为0的点,入度为0时,他之前的父节点已经记录完毕,可以直接加入到他的子节点中。

最后还需要转换结果,从小到大,直接用set可以解决,注意,一个点可能经过不同的路径到达另外一个点,这样父节点可能插入两个相同的数值,set正好解决了这个问题,同时也可以排序,就是用的空间可能比unorder_set大。

class Solution {public:vector<vector<int>> getAncestors(int n, vector<vector<int>>& edges) {vector<int>h[n];    //邻接表vector<int>index(n); // 入读表  注意一个是二维数组一个是一维数组vector<set<int>> ans(n); // 每个点之前有几个, 用set主要是可以直接删除有的相同元素for (auto e : edges) {index[e[1]]++;h[e[0]].push_back(e[1]);}queue<int> q; // 宽搜拓扑排序找出更新结束的点for (int i = 0; i < n; i++) if (!index[i]) q.push(i);while (q.size()) {int u = q.front();q.pop();for (int i = 0; i < h[u].size(); i++) {int x = h[u][i];ans[x].insert(u);for (auto k : ans[u]) {ans[x].insert(k);}index[x]--;if (!index[x]) {q.push(x);}}}vector<vector<int>> res(n);for (int i = 0; i < n; i++) {for (auto a : ans[i]) {res[i].push_back(a);}}return res;}
};

2192. 有向无环图中一个节点的所有祖先(邻接表 加 拓扑排序)相关推荐

  1. LeetCode 2192. 有向无环图中一个节点的所有祖先(拓扑排序)

    文章目录 1. 题目 2. 解题 1. 题目 给你一个正整数 n ,它表示一个 有向无环图 中节点的数目,节点编号为 0 到 n - 1 (包括两者). 给你一个二维整数数组 edges ,其中 ed ...

  2. 有向无环图中的拓扑排序

    ´有向无环图(DAG),指不存在环的有向图 ´点的入度,指以这个点为结束点的边数 ´点的出度,指以这个点为出发点的边数 ´拓扑序就是对于节点的一个排列使得若(u,v)∈E,那么u在排列中出现的位置一定 ...

  3. 获得有向无环图中起点到终点的所有路径_力扣1514——概率最大的路径

    本题主要和图的遍历求解最短路径相关,可以用 Dijkstra 或者 Bellman-Ford 算法进行解决. 原题 给你一个由 n 个节点(下标从 0 开始)组成的无向加权图,该图由一个描述边的列表组 ...

  4. 【数据挖掘】贝叶斯信念网络 ( 马尔科夫假设 | 结构 | 有向无环图 | 参数 | 条件概率表 | 案例分析 )

    文章目录 I . 贝叶斯信念网络 II . 马尔科夫假设 III . 贝叶斯信念网络 示例 1 IV . 贝叶斯信念网络 示例 2 V . 贝叶斯信念网络 联合概率分布计算 VI . 贝叶斯信念网络 ...

  5. 因果系列文章(3)——有向无环图

    Pearl教授被称为"贝叶斯网络之父",足以显示他对贝叶斯网络研究的贡献(虽然他好像并不是贝叶斯网络的最初提出者).但正如他自己所说,他曾经一度认为贝叶斯网络是开启人工智能大门的金 ...

  6. 笔记:深度学习与有向无环图SVM结合用于年龄估计的局部调整

    阅读论文:Combined Deep Learning With Directed Acyclic Graph SVM for Local Adjustment of Age Estimation | ...

  7. java 有向无环图 树_拓扑排序-有向无环图(DAG, Directed Acyclic Graph)

    条件: 1.每个顶点出现且只出现一次. 2.若存在一条从顶点 A 到顶点 B 的路径,那么在序列中顶点 A 出现在顶点 B 的前面. 有向无环图(DAG)才有拓扑排序,非DAG图没有拓扑排序一说. 一 ...

  8. 有向无环图(DAG)的温故知新

    当我们学习数据结构的时候,总是觉得很枯燥,而当我们解决实际问题的时候,又往往因为对数据结构了解的匮乏而束手无策.从问题中来,到问题中去,在某一点上的深入思考并且不断的实践积累,或许是个笨办法,但笨办法 ...

  9. 带你了解有向无环图和拓扑排序

    写在前面 如果觉得有所收获,记得点个关注和点个赞,感谢支持. 今天遇到有向无环图的一些问题,感觉挺有意思的,而且这些问题的思路特点都差不多,所以想着记录一下.在图论中,如果一个有向图无法从某个顶点出发 ...

最新文章

  1. 关于更改linux源文件的问题(ubuntu)
  2. 数据库 / 事务的 ACID
  3. information_schema系列八(事物,锁)
  4. OpenGL_17_点光源
  5. JPA中的@MappedSuperclass
  6. 练习答案-分支与循环-超市买苹果练习-猜数字小游戏
  7. gx works2 存储器空间或桌面堆栈不足_2020福清市gx螺旋输送机价格厂家发货-衡泰...
  8. python爬虫--爬取豆瓣top250电影名
  9. 通过bat文件批量判断url地址的状态
  10. 责任链(Chain of Responsibility)模式
  11. 最简洁的秒杀 阿里月饼 js脚本
  12. SpringCloud Hoxton——Bus服务消息总线
  13. 2023年证券、基金、银行从业资格证考试计划
  14. 一元二次方程求解的实现
  15. stm32f7网口_【STM32F7】STM32F7开发篇-超详细操作步骤
  16. smarty引入html,php用Smarty模板生成html文件
  17. 一种踩内存的定位方法(C++)
  18. 使用ffmpeg处理 视频文件中帧间时间戳异常、关键帧间隔异常
  19. 深度学习(二十九)Batch Normalization 学习笔记
  20. 微软签约云南 将在云南建IT学院和软件中心

热门文章

  1. python列表输出奇数_Python程序在列表中打印奇数
  2. Linux EMMC子系统分析-初始化流程
  3. 国行new moto x升级android6,喜大普奔:国行MOTO升级Android6.0计划终于来了
  4. 【Vue3】引入组件Failed to resolve component: MyButton If this is a native custom element
  5. 软件定义的网络(上)
  6. 笑傲江湖ol更新服务器正在维护,《笑傲江湖ol》进不去怎么办 进不去解决方法...
  7. js网页背景颜色不断变化js特效
  8. 老男孩Python9期全套视频
  9. 【生产者篇】 sender线程源码分析--1
  10. nao机器人Python+pycharm+naoqi平台搭建