150 najlepszych wywiadówŁatwe

Harmonogram kursu

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

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.

Na przykład para [0, 1] wskazuje, że aby wybrać kurs 0, należy najpierw przejść kurs 1.

Zwróć True, jeśli możesz ukończyć wszystkie kursy. W przeciwnym razie zwróć False.

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

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
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?
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.