1. /*
  2. * 210 Course ScheduleII
  3. * 2016-6-9 by Mingyang
  4. * http://www.jyuan92.com/blog/leetcode-course-schedule-ii/
  5. * 在明白了I以后我们做II就很简单了,从最后的节点一个一个的放入queue里面,然后分别记录下来
  6. * 不过有以下几个注意点:
  7. * 1.不用开始判断空了
  8. * 2.最后的判断很重要,如果numOfPreCourse == numCourses就表示我们有这么一个完成的课程
  9. * 我们就返回res,不然就返回空的array
  10. */
  11. public int[] findOrder(int numCourses, int[][] prerequisites) {
  12. int[] res = new int[numCourses];//区别1,多了一个装order的array
  13. int[] preCourses = new int[numCourses];
  14. // store the in-degree #
  15. for (int[] prerequisite : prerequisites) {
  16. preCourses[prerequisite[0]]++;
  17. }
  18. Queue<Integer> queue = new LinkedList<Integer>();
  19. for (int i = 0; i < preCourses.length; i++) {
  20. if (preCourses[i] == 0) {//这里是从下往上走,从最低级的课往高级的课走
  21. queue.add(i);
  22. }
  23. }
  24. int numOfPreCourse = 0;
  25. int i = 0;//区别2,多了一个i来遍历res
  26. while (!queue.isEmpty()) {
  27. int top = queue.poll();
  28. res[i++] = top;
  29. numOfPreCourse++;
  30. for (int[] prerequisite : prerequisites) {
  31. if (prerequisite[1] == top) {
  32. preCourses[prerequisite[0]]--;
  33. if (preCourses[prerequisite[0]] == 0) {
  34. queue.add(prerequisite[0]);
  35. }
  36. }
  37. }
  38. }//最后再多一个判断,就是返回是否是需要return新的
  39. if (numOfPreCourse == numCourses) {
  40. return res;
  41. } else {
  42. return new int[0];
  43. }
  44. }

210 Course ScheduleII的更多相关文章

  1. Leetcode总结之Graph

    package Graph; import java.util.ArrayDeque; import java.util.ArrayList; import java.util.Collections ...

  2. nfs:server 172.168.1.22 not responding,still trying问题解决方法 平台为RealARM 210平台

    nfs:server 172.168.1.22 not responding,still trying问题解决方法 ,平台为RealARM 210平台. 这里的问题是在使用nfs挂载文件系统时遇到的, ...

  3. [LeetCode] Course Schedule I (207) & II (210) 解题思路

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

  4. 算法竞赛入门经典 习题2-10 排列(permutation)

    习题2-10 排列(permutation) 用1,2,3,-,9组成3个三位数 abc, def, 和ghi,每个数字恰好使用一次,要求 abc:def:ghi = 1:2:3.输出所有解.提示:不 ...

  5. (一)MYSQL ERROR 2003 (HY000): Can't connect to MySQL server on '192.168.10.210' (111) 解决方法

    今天在测试MySQL的连接时候,发现连接不通过,并报错ERROR 2003 (HY000): Can't connect to mysql server on '192.168.10.210' (11 ...

  6. MYSQL ERROR 2003 (HY000): Can't connect to MySQL server on '192.168.10.210' (111) 解决方法

    今天在测试MySQL的连接时候,发现连接不通过,并报错ERROR 2003 (HY000): Can't connect to mysql server on '192.168.10.210' (11 ...

  7. PAT《数据结构学习与实验指导》实验项目集 2-09 2-10 2-11 2-12 2-13

    pat 2-09 装箱问题模拟 #include<cstdio> #include<set> #include<vector> using namespace st ...

  8. [Codeforces #210] Tutorial

    Link: Codeforces #210 传送门 A: 贪心,对每个值都取最大值,不会有其他解使答案变优 #include <bits/stdc++.h> using namespace ...

  9. LeetCode:课程表II【210】

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

随机推荐

  1. COGS 74. [NOIP2006] 明明的随机数 (Splay小练习。。)

    ☆   输入文件:random.in   输出文件:random.out   简单对比时间限制:1 s   内存限制:128 MB [问题描述]    明明想在学校中请一些同学一起做一项问卷调查,为了 ...

  2. python 字符与字节 json序列和反序列及支持的类型

    b = b"demo" s = "demo" # 字符串转字节 s = bytes(s, encoding = "utf8") s = st ...

  3. docker 搭建 Java Web 运行环境

    安装环境:jdk,tomcat,mysql,nginx

  4. libs/tools.js stringToDate dateToString 日期字符串转换函数

    libs/tools.js stringToDate dateToString 日期字符串转换函数 import { stringToDate } from '@/libs/tools.js'   e ...

  5. Asp.Net Core 入门(二)——Startup.cs做了什么

    上篇介绍了Program.cs中Main做了什么,这篇我们来讨论下Startup.cs它又做了什么呢? 我们新建一个Asp.Net Core Mvc项目,先来开一下Startup的代码 public ...

  6. zeromq编译与应用

    libzmq是c++语言开发的,正式版本在这里: https://github.com/zeromq/libzmq/releases 到这篇文件发布为止,正式稳定版是4.2.2 1,按照给出的链接下载 ...

  7. P2257 YY的GCD (莫比乌斯反演)

    题意:求\[\sum_{i=1}^{n}\sum_{j=1}^{m}[gcd(i,j) = prim]\] 题解:那就开始化式子吧!! \[f(d) = \sum_{i=1}^{n}\sum_{j=1 ...

  8. 关于mysql服务突然运行不了的问题-“本地计算机上的mysql服务启动后停止,某些...”

    1.将mysql数据库的安装目录bin文件路径添加到环境的path中,为了让cmd可以直接输入下面的相关命令,不然cd到mysql的bin下也可以 2.cmd输入mysqld --initialize ...

  9. luogu P2078 朋友

    题目背景 小明在A公司工作,小红在B公司工作. 题目描述 这两个公司的员工有一个特点:一个公司的员工都是同性. A公司有N名员工,其中有P对朋友关系.B公司有M名员工,其中有Q对朋友关系.朋友的朋友一 ...

  10. [CF] 948A Protect Sheep

    A. Protect Sheep time limit per test1 second memory limit per test256 megabytes inputstandard input ...