Leetcode210-课程表II

描述

现在你总共有 n 门课需要选,记为 0 到 n-1。

在选修某些课程之前需要一些先修课程。 例如,想要学习课程 0 ,你需要先完成课程 1 ,我们用一个匹配来表示他们: [0,1]

给定课程总量以及它们的先决条件,返回你为了学完所有课程所安排的学习顺序。

可能会有多个正确的顺序,你只要返回一种就可以了。如果不可能完成所有课程,返回一个空数组。

示例1

输入: 2, [[1,0]]
输出: [0,1]
解释: 总共有 2 门课程。要学习课程 1,你需要先完成课程 0。因此,正确的课程顺序为 [0,1] 。

示例2

输入: 4, [[1,0],[2,0],[3,1],[3,2]]
输出: [0,1,2,3] or [0,2,1,3]
解释: 总共有 4 门课程。要学习课程 3,你应该先完成课程 1 和课程 2。并且课程 1 和课程 2 都应该排在课程 0 之后。因此,一个正确的课程顺序是 [0,1,2,3] 。另一个正确的排序是 [0,2,1,3] 。

没啥想说的,一开始把偏序关系看反了qwq,甚至傻到要用reverse(re.begin(), re.end())来反转数组

代码

class Solution {
public:vector<int> findOrder(int numCourses, vector<vector<int>>& prerequisites) {queue<int>q;vector<int>indegree(numCourses, 0);vector<int>re;for(int i=0; i<prerequisites.size(); i++)indegree[prerequisites[i][0]]++;for(int i=0; i<numCourses; i++){if(indegree[i] == 0)q.push(i);}int num(0);while(!q.empty()){int u = q.front();q.pop();re.push_back(u);num++;for(int i=0; i<prerequisites.size(); i++){if(prerequisites[i][1] == u){indegree[prerequisites[i][0]]--;if(indegree[prerequisites[i][0]] == 0)q.push(prerequisites[i][0]);}}}return (num == numCourses) ? re : vector<int>();}
};

Leetcode210-课程表II相关推荐

  1. [Swift]LeetCode210. 课程表 II | Course Schedule II

    ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★ ➤微信公众号:山青咏芝(shanqingyongzhi) ➤博客园地址:山青咏芝(https://www.cnblog ...

  2. LeetCode—210. 课程表 II

    210. 课程表 II 题目描述:现在你总共有 numCourses 门课需要选,记为 0 到 numCourses - 1.给你一个数组 prerequisites ,其中 prerequisite ...

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

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

  4. leetcode *210. 课程表 II(拓补排序)(2020.5.17)

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

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

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

  6. 210. 课程表 II kahn求拓扑图算法

    210. 课程表 II 难度:中等 题目描述 解题思路 以前没有写过图的,但是有了解过拓扑排序,根据提示还有算法描述很容易就写出代码了.用栈和队列都行,如果用栈就是深度优先搜索,用队列就是广度优先搜索 ...

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

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

  8. 207. 课程表/210. 课程表 II

    2020-06-05 1.题目描述 课程表 2.题解 拓扑排序,首先我们需要一个入度矩阵和邻接表来存放相关的信息,将入度为0的点存入队列/栈,并且将 与其相连的点的入度减1,重复上述操作,如果此时学习 ...

  9. Leetcode 210. 课程表 II 解题思路及C++实现

    解题思路: 与第207题很像,多的是需要存储一个修读课程的可行解,所以在dfs函数内,当判断第i门课程不存在环时,需要将其push_back进数组cur中. 由于是用深度优先搜索的方法,所以存储在cu ...

  10. 【数据结构与算法】之深入解析“课程表II”的求解思路与算法示例

    一.题目要求 现在你总共有 numCourses 门课需要选,记为 0 到 numCourses - 1.给你一个数组 prerequisites ,其中 prerequisites[i] = [ai ...

最新文章

  1. 精确到秒的JQuery日期控件,jquery日历插件,jquery日期插件
  2. CentOS 6.3开机自动挂载磁盘和文件夹
  3. wlop一张多少钱_50etf期权交易一张合约多少钱?
  4. MATLAB实战系列(二十一)-基于遗传算法的BP神经网络优化算法(附MATLAB代码)
  5. 工作流activity_开源、强大的工作流引擎:camunda入门介绍
  6. OData model cache logic in gateway system
  7. 深度思考的能力,决定了你能走多远
  8. 【2018山东省赛 - A】Anagram(贪心,费用流,KM算法)
  9. springMVC 前后台日期格式传值解决方式之二(共二) @InitBinder的使用
  10. wordpress模板-单栏整洁的个人博客Siren主题模板
  11. apache的poi中设置Excel的单元格样式(HSSFCellStyle)和表格(HSSFSheet)
  12. 【好文翻译】10个免费的压力测试工具(Web)
  13. npm i 报错 'match' of undefined 错误以及删除node_modules失败
  14. 《插件积累》页面音乐下载,付费音乐下载.
  15. 更换光猫后网速变慢的解决办法
  16. 调整视频播放速度,如何让视频加速或放慢播放
  17. Oracle等待事件之buffer busy waits
  18. 深度:老年旅游市场迎来转折点,50/60新老年消费升级带来结构性创新机会—营销/产品/运营
  19. 中船嘉年华邮轮揭幕全新企业品牌标识;美国运通全球商务旅行完成对Expedia集团旗下易信达的收购 | 全球旅报...
  20. JAVA课程设计个人博客 学生成绩管理 201521123014 黄绍桦

热门文章

  1. 洛谷P7583[COCI2012-2013#1] DOM
  2. 基于对抗训练的轨迹预测半监督算法(美国西北大学和加州尔湾分校)
  3. 论文-Geography-Aware Sequential Location Recommendation
  4. 利用matlab对音频做FFT进行频谱分析
  5. fan_in / fan_out 的理解
  6. 1014 福尔摩斯的约会 (20 分)
  7. 关于一种新的空气内新冠病毒检测方式的诸多设想
  8. 二维数组实现n阶方阵
  9. FOT再次上涨,中国市场需求不断上升,牛市真来了?
  10. java循环练习题及答案_循环练习题及答案