博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
LeetCode 210. Course Schedule II
阅读量:5100 次
发布时间:2019-06-13

本文共 1703 字,大约阅读时间需要 5 分钟。

原题链接在这里:

题目:

There are a total of n courses you have to take, labeled from 0 to n - 1.

Some courses may have prerequisites, for example to take course 0 you have to first take course 1, which is expressed as a pair: [0,1]

Given the total number of courses and a list of prerequisite pairs, return the ordering of courses you should take to finish all courses.

There may be multiple correct orders, you just need to return one of them. If it is impossible to finish all courses, return an empty array.

For example:

2, [[1,0]]

There are a total of 2 courses to take. To take course 1 you should have finished course 0. So the correct course order is [0,1]

4, [[1,0],[2,0],[3,1],[3,2]]

There are a total of 4 courses to take. To take course 3 you should have finished both courses 1 and 2. Both courses 1 and 2 should be taken after you finished course 0. So one correct course order is [0,1,2,3]. Another correct ordering is[0,2,1,3].

题解:

与类似。用BFS based topological sort.  若是最后res的size 没有加到 numCourses, 说明没有可行方案,返回空的array.

若是可行,就把res转化成array.

Time Complexity: O(V + E). Space: O(V).

AC Java:

1 public class Solution { 2     public int[] findOrder(int numCourses, int[][] prerequisites) { 3         List
res = new ArrayList
(); 4 List
> graph = new ArrayList
>(); 5 for(int i = 0; i
()); 7 } 8 for(int [] edge : prerequisites){ 9 graph.get(edge[1]).add(edge[0]);10 }11 12 int [] inDegree = new int[numCourses];13 for(int [] edge : prerequisites){14 inDegree[edge[0]]++;15 }16 17 LinkedList
que = new LinkedList
();18 for(int i = 0; i

跟上 .

转载于:https://www.cnblogs.com/Dylan-Java-NYC/p/4868728.html

你可能感兴趣的文章
angular中的$http服务
查看>>
一步一步分析Caliburn.Micro(三:绑定执行方法ActionMessage是怎么执行的)
查看>>
Sublime Text快捷键
查看>>
.NET 微信开放平台接口
查看>>
js、jquery报错
查看>>
IOS 多线程(3) --线程安全
查看>>
Git上传时,忽略多个不想上传的文件——每周汇总(第一周)
查看>>
Volley
查看>>
【转载】async await 异步编程详解
查看>>
基于上下文的防火墙
查看>>
计算机硬盘大小转换(B,KB,MB,GB,TB,PB之间的大小转换)
查看>>
PCB SQL SERVER 发送邮件(异步改同步)
查看>>
类方法@classmethod、属性方法@property、静态方法 @staticmethod
查看>>
计数方法,博弈论(扫描线,树形SG):HDU 5299 Circles Game
查看>>
编译原理作业
查看>>
DataTable与XML字符串互转
查看>>
cookie机制
查看>>
[elk]elasticsearch实现冷热数据分离
查看>>
Java集合
查看>>
most-wanted-letter
查看>>