|Selección de actividades: máximo sin solapamientoMaster
Ejercicio00:00

¿Quieres un reto mayor?

Resuelve en 20:00

info

Importante: Para que se registre el resultado tienes que iniciar sesión.

Selección de actividades: máximo sin solapamiento

Master100 pts·Algoritmos

Enunciado

Selección de actividades: máximo sin solapamiento

Dado un conjunto de actividades, cada una con un tiempo de inicio y un tiempo de fin, selecciona el número máximo de actividades que se puedan realizar sin que se solapen entre sí.

Dos actividades se solapan si la segunda comienza antes de que la primera termine.

Reglas

  • Una actividad [start, end] ocupa el intervalo [start, end) — es decir, el extremo derecho es exclusivo.
  • Puedes asumir que start < end para todas las actividades.
  • El orden de entrada de las actividades no está garantizado.

Ejemplos

// Ejemplo 1
const activities = [[1,4],[3,5],[0,6],[5,7],[3,9],[5,9],[6,10],[8,11],[8,12],[2,14],[12,16]];
selectActivities(activities); // 4

// Ejemplo 2
selectActivities([[0,3],[1,2],[2,5]]); // 2

// Ejemplo 3 — una sola actividad
selectActivities([[5,9]]); // 1

Pista

Usa el algoritmo greedy: ordena las actividades por tiempo de fin y selecciona siempre la siguiente actividad cuyo inicio sea mayor o igual al fin de la última seleccionada.

Restriccionesexpand_more
  • Dificultad: Master
  • Completa todos los test cases para obtener los 100 puntos.
  • No modificar la línea export al final del archivo.
  • Se recomienda evitar el uso de inteligencia artificial para que realmente tú practiques los ejercicios.

Puedes usar console.log() para depurar. Los resultados aparecen en la Consola de salida, no en el navegador.

Inicia sesión para reaccionar
Inicia sesión para reaccionar
Selección de actividades: máximo sin solapamiento — Master | Coding Challenges · Coding Challenges