Given a course schedule problem with dependencies, find the minimum number of time intervals/rounds required to complete all courses.
Asked in the Phone Screen stage. Variation of LeetCode Course Schedule on CoderPad.
You are given n courses labeled 0 to n - 1 and a list of prerequisite pairs prerequisites, where each pair [a, b] means course b must be completed before course a can start. In one time interval, you may take any number of courses as long as all of their prerequisites have already been completed.
Return the minimum number of intervals needed to complete all courses, or -1 if it is impossible because the dependency graph contains a cycle.
n: integerprerequisites: list of pairs [a, b]-1def min_rounds_to_finish_courses(n, prerequisites):