Course schedule II
来源:互联网 发布:淘宝热卖网 编辑:程序博客网 时间:2024/06/05 16:31
和course schedule一样的要求,只是要求输出toplogicl排序的结果。一个tricky的地方就是如果没有正常结果,输出new int[0
public class Solution { public int[] findOrder(int numCourses, int[][] prerequisites) { int[] result = new int[numCourses]; int resultInd = 0; int[] indegree = new int[numCourses]; int n = prerequisites.length; Map<Integer, List<Integer>> nodes = new HashMap<Integer, List<Integer>>(); for (int i = 0; i < n; i++) { int indegreeNode = prerequisites[i][0]; int outdegreeNode = prerequisites[i][1]; indegree[indegreeNode]++; if (nodes.get(outdegreeNode) == null) { nodes.put(outdegreeNode, new ArrayList<Integer>()); } nodes.get(outdegreeNode).add(indegreeNode); } int count = numCourses; Queue<Integer> queue = new LinkedList<Integer>(); for (int i = 0; i < numCourses; i++) { if (indegree[i] == 0) { indegree[i]--; queue.offer(i); count--; } } while (!queue.isEmpty()) { int zeroDegree = queue.poll(); result[resultInd++] = zeroDegree; List<Integer> list = nodes.get(zeroDegree); if (list != null) { for (int i = 0; i < list.size(); i++) { int num = list.get(i); indegree[num]--; if (indegree[num] == 0) { indegree[num]--; queue.offer(num); count--; } } } } return resultInd == numCourses ? result : new int[0] }}
0 0
- Course Schedule/Course Schedule II
- [leetcode]Course Schedule II
- leetcode - Course Schedule II
- LeetCode Course Schedule II
- Leetcode210-Course Schedule II
- [leetcode] Course Schedule II
- leetcode:Course Schedule II
- [LeetCode] Course Schedule II
- Course schedule II
- Leetcode Course Schedule II
- 【leetcode】Course Schedule II
- leetcode Course Schedule II
- Course Schedule II
- LeetCode Course Schedule II
- [leetcode] Course Schedule II
- #leetcode#Course Schedule II
- LeetCode Course Schedule II
- Course Schedule II
- java的开发环境 Escipline下载地址及其安装教程
- Linux:在已安装nginx情况下安装nginx模块
- Android开发常见的八大难题
- Java解八皇后问题——非迭代
- 九章算法面试题70 排颜色II sort colors
- Course schedule II
- Minimum size subarray sum
- Python的filter, map, reduce, lambda
- Coursera-Crypto1 Week1
- 用++操作符完成其它操作符的转换
- 欢迎使用CSDN-markdown编辑器
- 黑马程序员---(学习日记——异常)java中的异常机制
- 《C Primer Plus(第五版)中文版》第10章第1至13题
- Python的itertools和迭代器