210 Course ScheduleII
- /*
- * 210 Course ScheduleII
- * 2016-6-9 by Mingyang
- * http://www.jyuan92.com/blog/leetcode-course-schedule-ii/
- * 在明白了I以后我们做II就很简单了,从最后的节点一个一个的放入queue里面,然后分别记录下来
- * 不过有以下几个注意点:
- * 1.不用开始判断空了
- * 2.最后的判断很重要,如果numOfPreCourse == numCourses就表示我们有这么一个完成的课程
- * 我们就返回res,不然就返回空的array
- */
- public int[] findOrder(int numCourses, int[][] prerequisites) {
- int[] res = new int[numCourses];//区别1,多了一个装order的array
- int[] preCourses = new int[numCourses];
- // store the in-degree #
- for (int[] prerequisite : prerequisites) {
- preCourses[prerequisite[0]]++;
- }
- Queue<Integer> queue = new LinkedList<Integer>();
- for (int i = 0; i < preCourses.length; i++) {
- if (preCourses[i] == 0) {//这里是从下往上走,从最低级的课往高级的课走
- queue.add(i);
- }
- }
- int numOfPreCourse = 0;
- int i = 0;//区别2,多了一个i来遍历res
- while (!queue.isEmpty()) {
- int top = queue.poll();
- res[i++] = top;
- numOfPreCourse++;
- for (int[] prerequisite : prerequisites) {
- if (prerequisite[1] == top) {
- preCourses[prerequisite[0]]--;
- if (preCourses[prerequisite[0]] == 0) {
- queue.add(prerequisite[0]);
- }
- }
- }
- }//最后再多一个判断,就是返回是否是需要return新的
- if (numOfPreCourse == numCourses) {
- return res;
- } else {
- return new int[0];
- }
- }
210 Course ScheduleII的更多相关文章
- Leetcode总结之Graph
package Graph; import java.util.ArrayDeque; import java.util.ArrayList; import java.util.Collections ...
- 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挂载文件系统时遇到的, ...
- [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 ...
- 算法竞赛入门经典 习题2-10 排列(permutation)
习题2-10 排列(permutation) 用1,2,3,-,9组成3个三位数 abc, def, 和ghi,每个数字恰好使用一次,要求 abc:def:ghi = 1:2:3.输出所有解.提示:不 ...
- (一)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 ...
- 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 ...
- PAT《数据结构学习与实验指导》实验项目集 2-09 2-10 2-11 2-12 2-13
pat 2-09 装箱问题模拟 #include<cstdio> #include<set> #include<vector> using namespace st ...
- [Codeforces #210] Tutorial
Link: Codeforces #210 传送门 A: 贪心,对每个值都取最大值,不会有其他解使答案变优 #include <bits/stdc++.h> using namespace ...
- LeetCode:课程表II【210】
LeetCode:课程表II[210] 题目描述 现在你总共有 n 门课需要选,记为 0 到 n-1. 在选修某些课程之前需要一些先修课程. 例如,想要学习课程 0 ,你需要先完成课程 1 ,我们用一 ...
随机推荐
- COGS 74. [NOIP2006] 明明的随机数 (Splay小练习。。)
☆ 输入文件:random.in 输出文件:random.out 简单对比时间限制:1 s 内存限制:128 MB [问题描述] 明明想在学校中请一些同学一起做一项问卷调查,为了 ...
- python 字符与字节 json序列和反序列及支持的类型
b = b"demo" s = "demo" # 字符串转字节 s = bytes(s, encoding = "utf8") s = st ...
- docker 搭建 Java Web 运行环境
安装环境:jdk,tomcat,mysql,nginx
- libs/tools.js stringToDate dateToString 日期字符串转换函数
libs/tools.js stringToDate dateToString 日期字符串转换函数 import { stringToDate } from '@/libs/tools.js' e ...
- Asp.Net Core 入门(二)——Startup.cs做了什么
上篇介绍了Program.cs中Main做了什么,这篇我们来讨论下Startup.cs它又做了什么呢? 我们新建一个Asp.Net Core Mvc项目,先来开一下Startup的代码 public ...
- zeromq编译与应用
libzmq是c++语言开发的,正式版本在这里: https://github.com/zeromq/libzmq/releases 到这篇文件发布为止,正式稳定版是4.2.2 1,按照给出的链接下载 ...
- P2257 YY的GCD (莫比乌斯反演)
题意:求\[\sum_{i=1}^{n}\sum_{j=1}^{m}[gcd(i,j) = prim]\] 题解:那就开始化式子吧!! \[f(d) = \sum_{i=1}^{n}\sum_{j=1 ...
- 关于mysql服务突然运行不了的问题-“本地计算机上的mysql服务启动后停止,某些...”
1.将mysql数据库的安装目录bin文件路径添加到环境的path中,为了让cmd可以直接输入下面的相关命令,不然cd到mysql的bin下也可以 2.cmd输入mysqld --initialize ...
- luogu P2078 朋友
题目背景 小明在A公司工作,小红在B公司工作. 题目描述 这两个公司的员工有一个特点:一个公司的员工都是同性. A公司有N名员工,其中有P对朋友关系.B公司有M名员工,其中有Q对朋友关系.朋友的朋友一 ...
- [CF] 948A Protect Sheep
A. Protect Sheep time limit per test1 second memory limit per test256 megabytes inputstandard input ...