 All Problems
Parallel Courses
medium
topological sort
graph
bfs
amazon
google
microsoft

You have n courses labeled 1 to n and an array relations where relations[i] = [prevCourse, nextCourse] means prevCourse must be taken before nextCourse.

In one semester you can take any number of courses as long as all prerequisites are done. Return the minimum number of semesters to finish all courses, or -1 if impossible.

Example 1:

Input: n = 3, relations = [[1,3],[2,3]]
Output: 2

Example 2:

Input: n = 3, relations = [[1,2],[2,3],[3,1]]
Output: -1 (cycle)

Constraints:

  • 1 <= n <= 5000
  • 0 <= relations.length <= 5000
Run to check your code against the sample cases, or submit to run every case