[LeetCode] 0207. Horario del curso

Horario del curso

Explore diversas soluciones LeetCode en Python, C++, JavaScript, SQL y TypeScript. Ideal para preparación de entrevistas, aprendizaje y práctica de código en múltiples lenguajes de programación. Enlace de repositorio de Github

Tabla de contenido

Medio


Hay un total de numCursos cursos que tienes que tomar, etiquetados desde 0 a numCursos-1.Se te da una matriz requisitos previos dónde requisitos previos [i] = [a i , b i ] indica que tu debe tomar curso b yo primero si quieres tomar el curso AI.

  • Por ejemplo, la pareja [0, 1], indica que tomar rumbo 0 primero tienes que tomar el curso 1.

Devolver verdadero Si puedes terminar todos los cursos, de lo contrario, regresa. FALSO.

 

Ejemplo 1:

Aporte: numCursos = 2, requisitos previos = [[1,0]]
Producción: verdadero
Explicación: Hay un total de 2 cursos a tomar. Para tomar el curso 1 debes haber terminado el curso 0. Entonces es posible.

Ejemplo 2:

Aporte: numCursos = 2, requisitos previos = [[1,0],[0,1]]
Producción: FALSO
Explicación: Hay un total de 2 cursos a tomar. Para tomar el curso 1 debes haber terminado el curso 0, y para tomar el curso 0 también debes haber terminado el curso 1. Entonces es imposible.

 

Restricciones:

  • 1 <= numCursos <= 2000
  • 0 <= requisitos previos.longitud <= 5000
  • requisitos previos [i]. longitud == 2
  • 0 <= a i , bi < numCursos
  • Todos los requisitos previos de los pares [i] son único.

Pitón

				
					de colecciones importar deque de escribir importar clase de lista Solución: def canFinish(self, numCourses: int, prerrequisitos: List[List[int]]) -> bool: ingrado = [0] * numCourses adj = [[] para _ en rango (númCursos)] para prerrequisito en prerrequisitos: adj[prerrequisito[1]].append(prerrequisito[0]) grado[prerrequisito[0]] += 1 cola = deque() para i en rango(númCursos): si grado[ i] == 0: queue.append(i) nodoVisitado = 0 mientras cola: nodo = queue.popleft() nodoVisitado += 1 para vecino en adj[nodo]: grado[vecino] -= 1 si grado[vecino] = = 0: queue.append(vecino) devuelve nodoVisitado == numCursos
				
			
es_ESEspañol