Menu
CoddyTech

Activity Selection Problem

La actividad i va desde el momento start[i] hasta el momento finish[i]. Una persona realiza una actividad a la vez, y la siguiente actividad debe comenzar estrictamente después de que termine la anterior: una actividad que comienza justo cuando termina otra no puede realizarse después de ella.

Devuelve el número máximo de actividades que una persona puede realizar.

Función

maxActivities(start: integer-array, finish: integer-array) → integer
startinteger-array
la hora de inicio de cada actividad
finishinteger-array
la hora de finalización de cada actividad; finish[i] corresponde a start[i]
Devuelveinteger
la mayor cantidad de actividades que una persona puede hacer, una tras otra

Restricciones

  • 1 ≤ start.length == finish.length ≤ 5000
  • 0 ≤ start[i] ≤ finish[i] ≤ 105
  • Una actividad puede comenzar y terminar al mismo tiempo. Los arreglos no están ordenados.

Ejemplos

Entrada
start = [10, 12, 20, 14, 25, 21]finish = [13, 16, 24, 19, 30, 22]
Salida
4
Explicación
Hacer del 10 al 13, del 14 al 19, del 21 al 22 y del 25 al 30 da 4. Cinco es imposible: del 10 al 13 entra en conflicto con del 12 al 16, y del 21 al 22 con del 20 al 24.
challenge icon

Para ir más allá

Ahora dos personas trabajan en paralelo, cada una realizando una actividad a la vez. ¿Cuántas actividades pueden hacer juntas y qué persona debería encargarse de cada una?

Restablecer código
def maxActivities(start, finish):
    # Escribe el código aquí

Prueba #1

Prueba #2

Prueba #3

Argumentos

start = [10, 12, 20, 14, 25, 21]
finish = [13, 16, 24, 19, 30, 22]

Salida Esperada

4