Le migliori 150 intervisteFacile

Programma del corso

Guida dettagliata e implementazione Python per il problema "Programma del corso".

Dichiarazione del problema

Facile

Ci sono un totale di numCourses corsi che devi seguire, etichettati da 0 a numCourses - 1. Ti viene fornito un array prerequisites dove prerequisites[i] = [ai, bi] indica che devi prima seguire il corso bi se vuoi seguire il corso ai.

Ad esempio, la coppia [0, 1] indica che per seguire il corso 0 devi prima seguire il corso 1.

Restituisce True se riesci a finire tutti i corsi. Altrimenti restituisce False.

Scrivi una funzione canFinish(numCourses: int, prerequisites: List[List[int]]) -> bool.

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

Esempi

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?
Prendi in considerazione l'utilizzo di strutture dati specifiche di Graphs come set o heap.
Edge Cases to Watch
  • Strutture di input vuote
  • Ingressi a elemento singolo
  • Grandi limiti numerici

Pronto a risolvere?

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

Apri nell'editor
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

Risorse Python consigliate

Espandi le tue conoscenze con tutorial interattivi, foglietti illustrativi e confronti di codici correlati.