- Para cada persona, represente los datos ocupados como un conjunto de intervalos de tiempo, donde un intervalo [a, b] representa un evento (tiempo ocupado) del calendario y también es un subconjunto de las horas de trabajo (conjunto universal) del por ejemplo, digamos que el horario de trabajo de Bob es de 9 a.m. a 5 p.m. y hoy Bob tiene una conferencia de 10 a.m. a 1 p.m. y un almuerzo programado con Eva de 1 p.m. a 2 p.m., luego el itinerario del Conjunto de Bob para el día es {[10,1], [1,2]}, sobre un conjunto universal de {[9,5]}.
- Tome un complemento del conjunto de itinerarios de Bob (“{[10,1], [1,1]}”), obtendrá los intervalos de tiempo libre, llame a este conjunto “Ft”.
- Del mismo modo, calcule Ft para Alice.
- Realice una operación AND en los pies de Alice y Bob, obtendrá los intervalos de tiempo durante los cuales ambos individuos son gratuitos.
¿Cuál es el enfoque algorítmico para encontrar los intervalos de tiempo libre de ambas personas para que puedan organizar una reunión, dado el conjunto de intervalos de tiempo ocupado de dos personas, como en un calendario?
Related Content
Combine ambos conjuntos de intervalos de intervalos en una sola lista. Por ejemplo si los intervalos son
a) (1,5), (10,14), (12,15)
b) (3,5), (12,15)
La lista fusionada sería
(1,5), (3,5), (10,14), (12,15), (12,15)
Ahora tome dos intervalos adyacentes a la vez y reste el primer número del segundo intervalo del segundo número del primer intervalo. Si la diferencia es negativa, pase al siguiente elemento.
Ejemplo considere (1,5) y (3,5)
La diferencia es 3-5 <0, por lo tanto, pasar al siguiente elemento y su elemento adyacente que sería
(3,5) y (10,14)
la diferencia es 10-5> 0
Por lo tanto, el número de espacios libres es 10-5-1 = 4
Por lo tanto, 4 intervalos de 6 (siguiente número del segundo número del primer intervalo) son libres, que es 6,7,8,9 = (6,9)
Continúe de la misma manera hasta el segundo último elemento de la lista.
More Interesting
¿Qué tan valioso sería ser ubicado para aprender la estructura de datos usando C?
Programación competitiva: ¿Se pueden resolver todos los problemas de Fenwick Tree con Segment Tree?
¿Utiliza el cerebro un proceso de recursión?
¿Por qué los estudiantes chinos tienen un talento extraordinario en programación y algoritmos?
¿Por qué usamos el árbol de búsqueda binario?
¿Cómo inserta este código un nuevo nodo en un árbol binario?
¿Es una matriz que está en un orden ordenado un montón mínimo?
¿Cuántos rectángulos de 3 × 5 caben en un rectángulo de 18 x 26? ¿Hay una manera simple de calcular?
Cómo encontrar los diferentes números de subconjuntos contiguos de una matriz usando Java