Problem
Ask
Submissions

Problem: Parallel Courses

Medium
30 min
Explore how to apply topological sort to determine the minimum number of semesters required to finish a set of courses with prerequisite constraints. Understand how to detect circular dependencies that make course completion impossible and practice implementing an efficient solution to manage course scheduling.

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
Explore how to apply topological sort to determine the minimum number of semesters required to finish a set of courses with prerequisite constraints. Understand how to detect circular dependencies that make course completion impossible and practice implementing an efficient solution to manage course scheduling.

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.