问题:给出个课程个数,及前提条件对[v,u],即修课程v之前需要修课程u,如果可以输出修的课程顺序

思路:

对于有向图的拓扑排序

一种方式是使用dfs,访问结点的状态分为三种,white,gray,black,其中white表示没有被访问,gray表示正在被访问,black表示已经访问过。在dfs中访问u结点时,首先将结点状态设置为gray,在遍历邻接结点时,如果邻接结点是gray,说明存在环,如果是white,则进入下一深度。所以邻接结点遍历后,将结点设置为black。

另外一种方式是bfs,首先将入度为0的结点放入队列。在出队时,将当前结点的邻接结点对应的入度减1,如果入度为0,将邻接结点放入队列。
具体代码参考:

https://github.com/wuli2496/OJ/tree/master/LeetCode/Course%20Schedule%20II

LeetCode Course Schedule II(拓扑排序)相关推荐

  1. leetcode Course Schedule II

    题目连接 https://leetcode.com/problems/course-schedule-ii/ Course Schedule II Description There are a to ...

  2. [Leedcode][JAVA][第210 题][课程表 II][拓扑排序][BFS][DFS][有向图]

    [问题描述][第210 题][课程表 II][中等] 现在你总共有 n 门课需要选,记为 0 到 n-1.在选修某些课程之前需要一些先修课程. 例如,想要学习课程 0 ,你需要先完成课程 1 ,我们用 ...

  3. LeetCode 207. 课程表(拓扑排序)

    1. 题目 你这个学期必须选修 numCourse 门课程,记为 0 到 numCourse-1 . 在选修某些课程之前需要一些先修课程. 例如,想要学习课程 0 ,你需要先完成课程 1 ,我们用一个 ...

  4. Leetcode 1436旅行终点站 拓扑排序 并查集与队列

    题目介绍 题目难度: easy 给你一份旅游线路图,该线路图中的旅行线路用数组 paths 表示,其中 paths[i] = [cityAi, cityBi] 表示该线路将会从 cityAi 直接前往 ...

  5. 207.课程表 | 210.课程表II(拓扑排序)

    207.课程表 你这个学期必须选修 numCourses 门课程,记为 0 到 numCourses - 1 . 在选修某些课程之前需要一些先修课程. 先修课程按数组 prerequisites 给出 ...

  6. leetcode 1203. 项目管理(拓扑排序)

    公司共有 n 个项目和 m 个小组,每个项目要不无人接手,要不就由 m 个小组之一负责. group[i] 表示第 i 个项目所属的小组,如果这个项目目前无人接手,那么 group[i] 就等于 -1 ...

  7. LeetCode Minimum Height Trees(拓扑排序)

    问题:给出一个图,要求确定树的根,使得树的高度最小. 思路:先求出结点的度.然后将度数为1的入队列.在出队列时,将其邻接结点的度数减1,如果度数为1,则放入队列.直接剩余的结点数小于等于2 具体代码参 ...

  8. LeetCode 210. 课程表 II(拓扑排序)

    1. 题目 现在你总共有 n 门课需要选,记为 0 到 n-1. 在选修某些课程之前需要一些先修课程. 例如,想要学习课程 0 ,你需要先完成课程 1 ,我们用一个匹配来表示他们: [0,1] 给定课 ...

  9. [Leetcode][第207题][JAVA][课程表][拓扑排序][DFS]

    [问题描述][中等] [解答思路] 1. 拓扑排序 复杂度分析 HashSet[] 数组 import java.util.HashSet; import java.util.LinkedList; ...

最新文章

  1. 小甲鱼-累加数据段中的前3个字型数据【不对的话,请指教!】
  2. 结合typedef更为直观的应用函数指针
  3. 启用Gzip压缩(IIS)提高客户端网站访问速度
  4. Quartz-JobListener解读
  5. 物化视图是否可以exp导出_物化视图导出导入可能导致物化视图日志的失效
  6. 你用苹果手机多长时间清理一次内存,怎么清理?
  7. 图的最短路算法(Dijkstra和Floyd-Warshall)
  8. 大数据分析的方法有哪些
  9. FISCO BCOS(二)———配置及使用控制台
  10. linux codeblocks汉化
  11. 显微镜下的大明——第三个故事
  12. oracle条件索引查询,Oracle复合索引用于范围查询条件
  13. python挑选以元音字母开头的单词,在Python中查找以特定字母开头的列表元素
  14. python django 基本测试 及调试 201812
  15. 研究人员开发实时歌词生成技术以激发歌曲创作灵感
  16. ChatGPT工作提效之初探路径独孤九剑遇强则强
  17. Paho Java Client 连接阿里云物联网平台
  18. 大众点评评论抓取-CSS加密破解
  19. 美橙互联短信服务——发送注册短信并验证
  20. 开机启动计算机时 屏幕无显示桌面,开机时电脑黑屏没有出现桌面怎么处理

热门文章

  1. springmvc国际化 基于浏览器语言的国际化配置
  2. 如何刪除GitHub中的repository
  3. Synchronized同步的考虑
  4. php dirname(__FILE__)
  5. 简单解决AJAX在IE中的缓存问题
  6. 《程序开发心理学》读书笔记(二)
  7. 化浆池是什么东西_冷水滩酒店海鲜贝类池定制定做大型海鲜池
  8. python100行代码-100行Python代码自动抢火车票!
  9. python经典案例-Python3经典100例(①)
  10. python与excel的应用-python怎样在excel中应用?