FastPrepCourse Schedule
Problem · Graph

Course Schedule

Learn this problem
MediumFlexTrade logoFlexTradeFULLTIMEONSITE INTERVIEW

Problem statement

There are numCourses courses labeled from 0 through numCourses - 1. Each pair [course, prerequisite] means that prerequisite must be completed before course.

Return true if all courses can be completed. Return false if the prerequisite relationships contain a directed cycle.

Function

canFinish(numCourses: int, prerequisites: int[][]) → boolean

Examples

Example 1

numCourses = 2prerequisites = [[1,0]]return = true

Course 0 can be completed before course 1.

Example 2

numCourses = 2prerequisites = [[1,0],[0,1]]return = false

Each course requires the other first, so the graph contains a cycle.

Example 3

numCourses = 4prerequisites = [[1,0],[2,1],[3,2]]return = true

The courses can be completed in the order 0, 1, 2, 3.

Constraints

  • 1 <= numCourses <= 2000
  • 0 <= prerequisites.length <= 5000
  • Every pair contains two valid course labels from 0 through numCourses - 1.

More FlexTrade problems

drafts saved locally
public boolean canFinish(int numCourses, int[][] prerequisites) {
  // Write your code here.
}
numCourses2
prerequisites[[1,0]]
expectedtrue
checking account