¿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?

  1. 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]}.
  2. Tome un complemento del conjunto de itinerarios de Bob (“{[10,1], [1,1]}”), obtendrá los intervalos de tiempo libre, llame a este conjunto “Ft”.
  3. Del mismo modo, calcule Ft para Alice.
  4. Realice una operación AND en los pies de Alice y Bob, obtendrá los intervalos de tiempo durante los cuales ambos individuos son gratuitos.

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?

Creamos un algoritmo de software único para medir / cuantificar las diferencias de las imágenes a escala nano-planetaria. ¿Cómo monetizamos esto?

¿Es posible encontrar la distancia del vértice más alejada del vértice inicial mediante la solución iterativa de DFS para un árbol (NO un gráfico genérico)?

¿Podemos decir que el Aprendizaje automático es nuestro compromiso para los problemas para los que no pudimos encontrar algoritmos? Argumentos

¿Pueden los intrones tener longitudes que no sean múltiplos de 3 (lo que complicaría seriamente los algoritmos de predicción de genes)?

¿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?

Programación de computadoras: Como ingeniero de software, ¿qué cosas crees que son "innecesariamente complicadas"?

¿Podría alguien explicar las etapas de un algoritmo recursivo que muestra cómo se alcanza la condición de terminación?

Cómo encontrar los diferentes números de subconjuntos contiguos de una matriz usando Java