150 principais entrevistasFácil

Cronograma do Curso II

Guia detalhado e implementação de Python para o problema 'Course Schedule II'.

Declaração do problema

Fácil

Há um total de cursos numCourses que você deve fazer, rotulados de 0 a numCourses - 1. Você recebe uma matriz de pré-requisitos onde pré-requisitos[i] = [ai, bi] indica que você deve fazer o curso bi primeiro se quiser fazer o curso ai.

Retorne a ordenação dos cursos que você deverá realizar para finalizar todos os cursos. Se houver muitas respostas válidas, retorne qualquer uma delas. Caso seja impossível terminar todos os cursos, retorne um array vazio.

Escreva uma função findOrder(numCourses: int, prerequisites: List[List[int]]) -> List[int].

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

Exemplos

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

There are a total of 2 courses to take. To take course 1 you should have finished course 0. So the correct course order is [0,1].

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

There are a total of 4 courses to take. To take course 3 you should have finished both courses 1 and 2. Both courses 1 and 2 should be taken after you finished course 0. So one correct course order is [0,1,2,3]. Another correct ordering is [0,2,1,3].

Need a Hint?
Considere usar estruturas de dados específicas de gráficos, como conjuntos ou heaps.
Edge Cases to Watch
  • Estruturas de entrada vazias
  • Entradas de elemento único
  • Grandes limites numéricos

Pronto para resolver?

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

Abrir no 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 Python recomendados

Expanda seu conhecimento com tutoriais interativos relacionados, folhas de dicas e comparações de código.