Entrevista a los 150 mejoresfácil

Horario del curso

Guía detallada e implementación Python para el problema 'Programa de cursos'.

Declaración del problema

fácil

Hay un total de numCourses cursos que debe tomar, etiquetados de 0 a numCourses - 1. Se le proporciona una matriz de requisitos previos donde prerrequisitos[i] = [ai, bi] indica que debe tomar el curso bi primero si desea tomar el curso ai.

Por ejemplo, el par [0, 1] indica que para tomar el curso 0 primero debes tomar el curso 1.

Devuelve True si puedes terminar todos los cursos. De lo contrario, devuelve Falso.

Escribe una función canFinish(numCourses: int, prerequisites: List[List[int]]) -> bool.

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

Ejemplos

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?
Considere la posibilidad de utilizar estructuras de datos específicas de Graphs, como conjuntos o montones.
Edge Cases to Watch
  • Estructuras de entrada vacías
  • Entradas de un solo elemento
  • Grandes límites numéricos

¿Listo para resolver?

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

Abrir en el 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

Recursos recomendados de Python

Amplíe sus conocimientos con tutoriales interactivos relacionados, hojas de trucos y comparaciones de códigos.