Есть очередь любого формата, первое что пришло в голову объекты, но скорее всего будет что-то вроде
[[0, 1], [50, 60]], в ней хранятся N диапазонов.
Необходимо сравнить в порядке первый пришёл - первый ушёл диапазоны в этой очереди и вернуть два совпавших диапазона.
Если
a входит в
d - вернуть
[a, d], если
b входит в
a - вернуть
[b, a]
Очень важна производительность, скорее всего есть какой-то алгоритм, но я в них не силён.
const a = [25, 40];
const b = [18, 18];
const c = [18, 60];
const d = [19, 47];
const rangeQueue = [
{
id: 0,
range: a
},
{
id: 1,
range: b
},
{
id: 2,
range: c
},
{
id: 3,
range: d
},
];
const selectRange = (rangesArr) => {
/* answer */
return [rangesArr[0], rangesArr[1]];
}
console.log(selectRange(rangeQueue));