Menu
CoddyTech

Course Schedule

Il y a numCourses cours, numérotés de 0 à numCourses-1. Chaque paire [a, b] dans prerequisites signifie que tu dois terminer le cours b avant de commencer le cours a. Retourne true si un ordre te permet de terminer tous les cours, et false si aucun ne le permet.

Fonction

canFinish(numCourses: integer, prerequisites: integer-2d-array) → boolean
numCoursesinteger
le nombre de cours
prerequisitesinteger-2d-array
les paires [a, b], chacune indiquant que le cours b doit être suivi avant le cours a
Renvoieboolean
vrai si chaque cours peut être terminé, faux sinon

Contraintes

  • 1 ≤ numCourses ≤ 105
  • 1 ≤ prerequisites.length ≤ 5000
  • Chaque paire [a, b] vérifie 0 ≤ a, b < numCourses.
  • Aucune paire n’apparaît deux fois.
  • Une paire peut nommer deux fois le même cours, [a, a]. Ce cours a besoin de lui-même en premier, donc il ne peut jamais être suivi.

Exemples

Entrée
numCourses = 4prerequisites = [[1, 0], [2, 1], [3, 1]]
Sortie
true
Explication
Le cours 0 n’a pas de prérequis, vous le suivez donc en premier. Cela libère le cours 1, qui libère les cours 2 et 3 ; l’ordre 0, 1, 2, 3 convient donc.
challenge icon

Pour aller plus loin

N'importe quel nombre de cours peut être suivi au cours d'un même semestre, à condition que les prérequis de chaque cours aient été remplis lors de semestres précédents. Quel est le nombre minimal de semestres nécessaires pour suivre tous les cours ?

Réinitialiser le code
def canFinish(numCourses, prerequisites):
    # Écrivez le code ici

Test #1

Test #2

Arguments

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

Résultat attendu

true