Menu
CoddyTech

Meeting Rooms II

Otrzymujesz listę spotkań w postaci dwóch tablic: spotkanie i trwa od starts[i] do ends[i]. W jednej sali może odbywać się tylko jedno spotkanie naraz, a spotkanie może rozpocząć się w sali dokładnie w chwili zakończenia innego spotkania.

Napisz funkcję o nazwie minMeetingRooms, która zwraca najmniejszą liczbę sal, w których można pomieścić wszystkie spotkania.

Funkcja

minMeetingRooms(starts: integer-array, ends: integer-array) → integer
startsinteger-array
godzina rozpoczęcia każdego spotkania
endsinteger-array
czas zakończenia każdego spotkania, pod tym samym indeksem co jego czas rozpoczęcia
Zwracainteger
najmniejsza liczba sal, w których można pomieścić wszystkie spotkania

Ograniczenia

  • 1 ≤ starts.length == ends.length ≤ 5000
  • 0 ≤ starts[i] < ends[i] ≤ 106
  • Spotkania nie są posortowane. Dwa spotkania mogą być identyczne.

Przykłady

Wejście
starts = [4, 1, 7, 2]ends = [8, 5, 9, 6]
Wyjście
3
Wyjaśnienie
W chwili 4 trwają wszystkie spotkania: od 1 do 5, od 2 do 6 i od 4 do 8, więc potrzebujesz co najmniej 3 sal. Trzy wystarczą: spotkanie od 7 do 9 odbywa się w sali, która zwalnia się o 5.

lock icon+17 ukrytych testów przy wysłaniu

challenge icon

Pytanie dodatkowe

Czy możesz też określić, do której sali trafia każde spotkanie, używając nie więcej sal niż wynika z odpowiedzi?

Zresetuj kod
def minMeetingRooms(starts, ends):
    # Wpisz kod tutaj
Przypadki testowe

Przypadek 1

Przypadek 2

Przypadek 3

Wejście

starts = [4, 1, 7, 2]
ends = [8, 5, 9, 6]

Oczekiwane

3