Menu
CoddyTech

Meeting Rooms

Você recebe uma lista de reuniões em dois arrays: a reunião i ocorre de starts[i] até ends[i]. Uma pessoa quer participar de todas elas, então nenhuma reunião pode se sobrepor a outra. Uma reunião pode começar exatamente no momento em que outra termina. Retorne true se a pessoa puder participar de todas as reuniões e false caso contrário.

Função

canAttendMeetings(starts: integer-array, ends: integer-array) → boolean
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
Retornaboolean
true se nenhuma das reuniões se sobrepõe, false caso contrário

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 = [9, 13, 10]ends = [10, 15, 12]
Saída
true
Explicação
Em ordem cronológica, as reuniões acontecem das 9 às 10, das 10 às 12 e das 13 às 15. A segunda começa no momento em que a primeira termina, o que é permitido, então a resposta é true.

lock icon+15 testes ocultos ao enviar

challenge icon

Para ir além

Se as reuniões forem agendadas uma de cada vez, como você verificaria cada novo agendamento em relação à agenda em O(log n), sem ordenar tudo novamente?

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

Caso 1

Caso 2

Entrada

starts = [9, 13, 10]
ends = [10, 15, 12]

Esperado

true