# LeetCode Course Schedule

Description:

here 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, is it possible for you to finish all courses?

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 it is possible.

2, [[1,0],[0,1]]

There are a total of 2 courses to take. To take course 1 you should have finished course 0, and to take course 0 you should also have finished course 1. So it is impossible.

Solution:

1. 先找入度为1的点，如果找不到，就返回false

2. 找到某一个入度为0的点，将所有从这个点能出发到的边遍历，每条边的另一个点入度都减去1

3. 如此循环n次

import java.util.*;

public class Solution {
public boolean canFinish(int numCourses, int[][] prerequisites) {
int n = numCourses;

int indegree[] = new int[n];
int mat[][] = new int[n][n];

for (int l = 0; l < prerequisites.length; l++) {
int i = prerequisites[l][0];
int j = prerequisites[l][1];
if (mat[i][j] == 1)
continue;
mat[i][j] = 1;
indegree[j]++;
}

int index;
for (int l = 0; l < n; l++) {
index = -1;
for (int i = 0; i < n; i++)
if (indegree[i] == 0) {
indegree[i] = -1;
index = i;
break;
}
if (index == -1)
return false;
for (int j = 0; j < n; j++)
if (mat[index][j] == 1)
indegree[j]--;
}

return true;
}
}

• 本文已收录于以下专栏：

## 【LeetCode】207. Course Schedule

• u011613729
• 2016年05月30日 23:40
• 672

## [leetcode-207]Course Schedule（java）

• zdavb
• 2015年08月26日 15:23
• 459

## leetcode 207: Course Schedule

leetcode 207 : Course Schedule
• xudli
• 2015年05月20日 05:07
• 4319

## 【LeetCode】Course Schedule 解题报告

【题目】 There are a total of n courses you have to take, labeled from 0 to n - 1. Some courses may ...
• ljiabin
• 2015年05月19日 17:05
• 15021

## 【LeetCode】Course Schedule II 解题报告

【题目】 There are a total of n courses you have to take, labeled from 0 to n - 1. Some course...
• ljiabin
• 2015年05月19日 17:13
• 8308

## leetcode 210: Course Schedule II

leetcode 210: Course Schedule II Course Schedule 2 java c++ python
• xudli
• 2015年05月22日 07:15
• 3423

## LeetCode 207 - Course Schedule

• lisong694767315
• 2015年05月07日 02:24
• 2758

## Leetcode 207 Course Schedule 课程表

• smile_watermelon
• 2015年08月10日 18:05
• 2809

## [LeetCode]Course Schedule，解题报告

• zinss26914
• 2015年05月11日 15:37
• 4267

## Leetcode 210 Course Schedule II 课程表II

• smile_watermelon
• 2015年08月14日 16:29
• 748

举报原因： 您举报文章：LeetCode Course Schedule 色情 政治 抄袭 广告 招聘 骂人 其他 (最多只允许输入30个字)