Leetcode210-课程表II
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相关推荐
- [Swift]LeetCode210. 课程表 II | Course Schedule II
★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★ ➤微信公众号:山青咏芝(shanqingyongzhi) ➤博客园地址:山青咏芝(https://www.cnblog ...
- LeetCode—210. 课程表 II
210. 课程表 II 题目描述:现在你总共有 numCourses 门课需要选,记为 0 到 numCourses - 1.给你一个数组 prerequisites ,其中 prerequisite ...
- [Leedcode][JAVA][第210 题][课程表 II][拓扑排序][BFS][DFS][有向图]
[问题描述][第210 题][课程表 II][中等] 现在你总共有 n 门课需要选,记为 0 到 n-1.在选修某些课程之前需要一些先修课程. 例如,想要学习课程 0 ,你需要先完成课程 1 ,我们用 ...
- leetcode *210. 课程表 II(拓补排序)(2020.5.17)
[题目]*210. 课程表 II 现在你总共有 n 门课需要选,记为 0 到 n-1. 在选修某些课程之前需要一些先修课程. 例如,想要学习课程 0 ,你需要先完成课程 1 ,我们用一个匹配来表示他们 ...
- 207.课程表 | 210.课程表II(拓扑排序)
207.课程表 你这个学期必须选修 numCourses 门课程,记为 0 到 numCourses - 1 . 在选修某些课程之前需要一些先修课程. 先修课程按数组 prerequisites 给出 ...
- 210. 课程表 II kahn求拓扑图算法
210. 课程表 II 难度:中等 题目描述 解题思路 以前没有写过图的,但是有了解过拓扑排序,根据提示还有算法描述很容易就写出代码了.用栈和队列都行,如果用栈就是深度优先搜索,用队列就是广度优先搜索 ...
- LeetCode 210. 课程表 II(拓扑排序)
1. 题目 现在你总共有 n 门课需要选,记为 0 到 n-1. 在选修某些课程之前需要一些先修课程. 例如,想要学习课程 0 ,你需要先完成课程 1 ,我们用一个匹配来表示他们: [0,1] 给定课 ...
- 207. 课程表/210. 课程表 II
2020-06-05 1.题目描述 课程表 2.题解 拓扑排序,首先我们需要一个入度矩阵和邻接表来存放相关的信息,将入度为0的点存入队列/栈,并且将 与其相连的点的入度减1,重复上述操作,如果此时学习 ...
- Leetcode 210. 课程表 II 解题思路及C++实现
解题思路: 与第207题很像,多的是需要存储一个修读课程的可行解,所以在dfs函数内,当判断第i门课程不存在环时,需要将其push_back进数组cur中. 由于是用深度优先搜索的方法,所以存储在cu ...
- 【数据结构与算法】之深入解析“课程表II”的求解思路与算法示例
一.题目要求 现在你总共有 numCourses 门课需要选,记为 0 到 numCourses - 1.给你一个数组 prerequisites ,其中 prerequisites[i] = [ai ...
最新文章
- 精确到秒的JQuery日期控件,jquery日历插件,jquery日期插件
- CentOS 6.3开机自动挂载磁盘和文件夹
- wlop一张多少钱_50etf期权交易一张合约多少钱?
- MATLAB实战系列(二十一)-基于遗传算法的BP神经网络优化算法(附MATLAB代码)
- 工作流activity_开源、强大的工作流引擎:camunda入门介绍
- OData model cache logic in gateway system
- 深度思考的能力,决定了你能走多远
- 【2018山东省赛 - A】Anagram(贪心,费用流,KM算法)
- springMVC 前后台日期格式传值解决方式之二(共二) @InitBinder的使用
- wordpress模板-单栏整洁的个人博客Siren主题模板
- apache的poi中设置Excel的单元格样式(HSSFCellStyle)和表格(HSSFSheet)
- 【好文翻译】10个免费的压力测试工具(Web)
- npm i 报错 'match' of undefined 错误以及删除node_modules失败
- 《插件积累》页面音乐下载,付费音乐下载.
- 更换光猫后网速变慢的解决办法
- 调整视频播放速度,如何让视频加速或放慢播放
- Oracle等待事件之buffer busy waits
- 深度:老年旅游市场迎来转折点,50/60新老年消费升级带来结构性创新机会—营销/产品/运营
- 中船嘉年华邮轮揭幕全新企业品牌标识;美国运通全球商务旅行完成对Expedia集团旗下易信达的收购 | 全球旅报...
- JAVA课程设计个人博客 学生成绩管理 201521123014 黄绍桦
热门文章
- 洛谷P7583[COCI2012-2013#1] DOM
- 基于对抗训练的轨迹预测半监督算法(美国西北大学和加州尔湾分校)
- 论文-Geography-Aware Sequential Location Recommendation
- 利用matlab对音频做FFT进行频谱分析
- fan_in / fan_out 的理解
- 1014 福尔摩斯的约会 (20 分)
- 关于一种新的空气内新冠病毒检测方式的诸多设想
- 二维数组实现n阶方阵
- FOT再次上涨,中国市场需求不断上升,牛市真来了?
- java循环练习题及答案_循环练习题及答案