Menu
CoddyTech

Meeting Rooms II

Você recebe uma lista de reuniões como dois arrays: a reunião i vai de starts[i] a ends[i]. Uma sala comporta uma reunião por vez, e uma reunião pode começar em uma sala exatamente no momento em que outra reunião termina nela.

Escreva uma função chamada minMeetingRooms que retorne o menor número de salas capaz de comportar todas as reuniões.

Função

minMeetingRooms(starts: integer-array, ends: integer-array) → integer
startsinteger-array
o horário de início de cada reunião
endsinteger-array
o horário de término de cada reunião, no mesmo índice que seu horário de início
Retornainteger
o menor número de salas que pode acomodar todas as reuniões

Restrições

  • 1 ≤ starts.length == ends.length ≤ 5000
  • 0 ≤ starts[i] < ends[i] ≤ 106
  • As reuniões não estão ordenadas. Duas reuniões podem ser idênticas.

Exemplos

Entrada
starts = [4, 1, 7, 2]ends = [8, 5, 9, 6]
Saída
3
Explicação
No instante 4, as reuniões de 1 a 5, de 2 a 6 e de 4 a 8 estão todas acontecendo, então você precisa de pelo menos 3 salas. Três são suficientes: a reunião de 7 a 9 ocupa a sala que fica livre às 5.

lock icon+17 testes ocultos ao enviar

challenge icon

Para ir além

Você também pode dizer em qual sala cada reunião acontece, sem usar mais salas do que a resposta indica?

Redefinir código
def minMeetingRooms(starts, ends):
    # Escreva o código aqui
Casos de teste

Caso 1

Caso 2

Caso 3

Entrada

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

Esperado

3