Menu
CoddyTech

Meeting Rooms

Recibes una lista de reuniones en forma de dos arreglos: la reunión i va desde starts[i] hasta ends[i]. Una persona quiere asistir a todas, así que no puede haber dos reuniones que se solapen. Una reunión puede empezar justo en el momento en que termina otra. Devuelve true si la persona puede asistir a todas las reuniones y false en caso contrario.

Función

canAttendMeetings(starts: integer-array, ends: integer-array) → boolean
startsinteger-array
la hora de inicio de cada reunión
endsinteger-array
la hora de finalización de cada reunión, en el mismo índice que su hora de inicio
Devuelveboolean
true si no se superponen dos reuniones, false en caso contrario

Restricciones

  • 1 ≤ starts.length == ends.length ≤ 5000
  • 0 ≤ starts[i] < ends[i] ≤ 106
  • Las reuniones no están ordenadas. Dos reuniones pueden ser idénticas.

Ejemplos

Entrada
starts = [9, 13, 10]ends = [10, 15, 12]
Salida
true
Explicación
En orden cronológico, las reuniones van de 9 a 10, de 10 a 12 y de 13 a 15. La segunda empieza justo cuando termina la primera, lo cual está permitido, así que la respuesta es true.

lock icon+15 pruebas ocultas al enviar

challenge icon

Para ir más allá

Si las reuniones se reservan de una en una, ¿cómo comprobarías cada nueva reserva con el horario en O(log n), sin volver a ordenar todo?

Restablecer código
def canAttendMeetings(starts, ends):
    # Escribe el código aquí
Casos de prueba

Caso 1

Caso 2

Entrada

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

Esperado

true