Search⌘ K
AI Features

Course Schedule

Explore how to apply topological sorting to solve course scheduling problems with prerequisites. Learn to check if all courses can be finished by analyzing dependencies, enhancing your skills in dependency resolution and graph-based algorithms.

Statement

You are given an integer, numCourses, representing the total number of courses you need to complete, labeled from 0 to numCourses - 1.

You are also given a prerequisites array, where prerequisites[i] = [a[i], b[i]] indicates that you must take course b[i] first if you want to take the course a[i]. For example, the pair [1,0][1, 0] indicates that to take course 11, you have to first take course 00.

Return TRUE if all of the courses can be finished. Otherwise, return FALSE.

Constraints:

  • 11 \leq numCourses 1500\leq 1500
  • 00 \leq prerequisites.length 1000\leq 1000
  • prerequisites[i].length =2= 2
  • 00 \leq a[i], b[i] << numCourses
  • All the pairs prerequisites[i] are unique.

Examples

Understand the problem

Let’s take a moment to make sure you've correctly understood the problem. The quiz below helps you check if you're solving the correct problem:

Course Schedule

1.

What is the output if the following prerequisites and number of courses are given as input?

prerequisites = [[1, 0], [1, 2], [3, 1], [4, 1], [1, 4], [5, 1]]

numCourses = 6

A.

TRUE

B.

FALSE


1 / 3

Note: The in-degree is the number of edges coming into a vertex in a directed graph.

Figure it out!

We have a game for you to play. Rearrange the logical building blocks to develop a clearer understanding of how to solve this problem.

Sequence - Vertical
Drag and drop the cards to rearrange them in the correct sequence.

1
2
3
4
5

Try it yourself

Implement your solution in the following coding playground.

Java
usercode > CourseSchedule.java
import java.util.*;
class CourseSchedule {
public static boolean canFinish(int numCourses, int[][] prerequisites) {
// Replace this placeholder return statement with your code
return false;
}
}
Course Schedule