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 < endpara 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
exportal 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