150 najlepszych wywiadówŁatwe

Harmonogram zajęć II

Szczegółowy przewodnik i implementacja Python dla problemu „Harmonogram kursu II”.

Oświadczenie o problemie

Łatwe

Łączna liczba kursów, w których musisz wziąć udział, wynosi numCourses, oznaczona liczbami od 0 do numCourses - 1. Podana jest tablica wymagań wstępnych, gdzie wymagania wstępne[i] = [ai, bi] wskazują, że jeśli chcesz wziąć udział w kursie ai, musisz najpierw wziąć udział w kursie bi.

Zwróć kolejność kursów, które powinieneś wykonać, aby ukończyć wszystkie kursy. Jeśli jest wiele prawidłowych odpowiedzi, zwróć dowolną z nich. Jeśli nie można ukończyć wszystkich kursów, zwróć pustą tablicę.

Napisz funkcję findOrder(numCourses: int, prerequisites: List[List[int]]) -> List[int].

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

Przykłady

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?
Rozważ użycie struktur danych specyficznych dla wykresów, takich jak zestawy lub sterty.
Edge Cases to Watch
  • Puste struktury wejściowe
  • Wejścia jednoelementowe
  • Duże granice liczbowe

Gotowy do rozwiązania?

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

Otwórz w Edytorze
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

Polecane zasoby Pythona

Poszerzaj swoją wiedzę dzięki powiązanym interaktywnym samouczkom, ściągawkom i porównaniom kodów.