Problem
Ask
Submissions

Problem: Parallel Courses

Medium
30 min
Understand how to solve course scheduling problems by applying topological sort techniques. Learn to order courses respecting prerequisites, identify circular dependencies, and calculate the minimum semesters needed for completion. This lesson equips you with methods to efficiently resolve scheduling constraints common in coding interviews.

Statement

You are designing a course schedule for a university with n courses, labeled from 1 to n. The prerequisite requirements are given in an array, relations, where each relations[i]=[prevCoursei,nextCoursei]\text{relations}[i] = [\text{prevCourse}_i, \text{nextCourse}_i] means that prevCoursei\text{prevCourse}_i must be completed before you can enroll in nextCoursei\text{nextCourse}_i.

You can take any number of courses during a single semester, as long as the prerequisite for each course has been met in a previous semester.

Your task is to determine the minimum number of semesters required to complete all n courses. If the prerequisites contain a circular dependency (e.g., course A requires B, and course B requires A), it’s impossible to complete them all, so you should return -1.

Constraints:

  • 11 \leq n 5×103\leq 5 \times10^3

  • 11 \leq relations.length 5×103\leq 5 \times 10^3

  • relations[i].length ==2== 2

  • 1prevCoursei1 \leq \text{prevCourse}_i, nextCoursei\text{nextCourse}_i \leq n

  • prevCourseinextCoursei\text{prevCourse}_i \neq \text{nextCourse}_i

  • All the pairs [prevCoursei,nextCoursei][\text{prevCourse}_i, \text{nextCourse}_i] are unique.

Problem
Ask
Submissions

Problem: Parallel Courses

Medium
30 min
Understand how to solve course scheduling problems by applying topological sort techniques. Learn to order courses respecting prerequisites, identify circular dependencies, and calculate the minimum semesters needed for completion. This lesson equips you with methods to efficiently resolve scheduling constraints common in coding interviews.

Statement

You are designing a course schedule for a university with n courses, labeled from 1 to n. The prerequisite requirements are given in an array, relations, where each relations[i]=[prevCoursei,nextCoursei]\text{relations}[i] = [\text{prevCourse}_i, \text{nextCourse}_i] means that prevCoursei\text{prevCourse}_i must be completed before you can enroll in nextCoursei\text{nextCourse}_i.

You can take any number of courses during a single semester, as long as the prerequisite for each course has been met in a previous semester.

Your task is to determine the minimum number of semesters required to complete all n courses. If the prerequisites contain a circular dependency (e.g., course A requires B, and course B requires A), it’s impossible to complete them all, so you should return -1.

Constraints:

  • 11 \leq n 5×103\leq 5 \times10^3

  • 11 \leq relations.length 5×103\leq 5 \times 10^3

  • relations[i].length ==2== 2

  • 1prevCoursei1 \leq \text{prevCourse}_i, nextCoursei\text{nextCourse}_i \leq n

  • prevCourseinextCoursei\text{prevCourse}_i \neq \text{nextCourse}_i

  • All the pairs [prevCoursei,nextCoursei][\text{prevCourse}_i, \text{nextCourse}_i] are unique.