Top 150 des entrevuesFacile

Calendrier des cours

Guide détaillé et implémentation de Python pour le problème « Planification des cours ».

Énoncé du problème

Facile

Il y a un total de cours numCourses que vous devez suivre, étiquetés de 0 à numCourses - 1. Vous recevez un tableau de prérequis où prérequis[i] = [ai, bi] indique que vous devez d'abord suivre le cours bi si vous souhaitez suivre le cours ai.

Par exemple, la paire [0, 1] indique que pour suivre le cours 0 il faut d'abord suivre le cours 1.

Renvoyez True si vous pouvez terminer tous les cours. Sinon, retournez False.

Écrivez une fonction canFinish(numCourses: int, prerequisites: List[List[int]]) -> bool.

Contraintes
  • 1 <= numCourses <= 2000
  • 0 <= len(prerequisites) <= 5000
  • prerequisites[i].length == 2
  • 0 <= ai, bi < numCourses

Exemples

Example 1
Input
numCourses = 2, prerequisites = [[1,0]]
Output
True
Explanation

To take course 1 you should have finished course 0. So it is possible.

Example 2
Input
numCourses = 2, prerequisites = [[1,0],[0,1]]
Output
False
Explanation

To take course 1 you should have finished course 0, and to take course 0 you should also have finished course 1. This is a cycle and therefore impossible.

Need a Hint?
Pensez à utiliser des structures de données spécifiques à Graphs, telles que des ensembles ou des tas.
Edge Cases to Watch
  • Structures d'entrée vides
  • Entrées à élément unique
  • Grandes limites numériques

Prêt à résoudre ?

Open the problem in PyRun's browser-based Python editor. Your code runs fully offline — no server required.

Ouvrir dans l'éditeur
Found this breakdown helpful?

PyRun is built and maintained by an independent solo developer. If this helped your interview prep, consider buying a coffee!

Buy me a coffee

Ressources Python recommandées

Développez vos connaissances avec des didacticiels interactifs, des aide-mémoire et des comparaisons de codes associés.