Se nos da un flujo continuo de rangos enteros como [1,3], [5,10], [2,6], ... cuando llega cada nuevo rango, necesitamos verificar con los rangos existentes y ver si se superpone con cualquier rango existente, y si se encuentra una superposición, todos los rangos superpuestos se eliminan y el rango fusionado se inserta en su lugar. Necesitamos un algoritmo eficiente para esto. Tenga en cuenta que el rango viene uno a la vez y forma una secuencia ...cómo combinar de manera eficiente rangos int en una secuencia?
Se le hizo esta pregunta durante una entrevista. Ideas?
La intención es fusionar rangos superpuestos en uno. por ejemplo, si tenemos 3 rangos en el siguiente orden: [1,3], [2,6], [5,10]. Luego fusionamos primero los dos primeros en [1,6], luego nos fusionamos con el tercero y se convierte en [1,10].
Su pregunta no está clara. ¿Desea que la salida sea una secuencia única como [1,2,3,5,6,7,8,9,10,2,3,4,5,6]? –
@Jim Mischel: suponía que cada tupla proporcionaba un inicio y un final de rango, por lo tanto, después de la primera tupla, el rango resultante incluiría [1,2,3]. Después de la segunda tupla, el rango resultante sería [1,2,3,5,6,7,8,9,10] (no 4). – oosterwal
a mis ojos, una salida lógica posible debería ser una lista de rangos (ordenados) que fusionan rangos de solapamiento – kriss