Алгоритм группировки по пересекающимся диапазонам дат
Подскажите, пожалуйста, лучший алгоритм для группировки данных по пересекающимся диапазонам дат.
Входные данные: Массив объектов, состоящих из трех полей: start (формат ГГГГ-ММ-ДД), end (формат ГГГГ-ММ-ДД), name. Входные данные отсортированы по start.
Выходные данные: Массив объектов, состоящих из трех полей: start (формат ГГГГ-ММ-ДД), end (формат ГГГГ-ММ-ДД), data (массив).
Пример входных данных:
[
{
start: 2021-10-01,
end: 2022-10-01,
name: data_1
},
{
start: 2021-11-01,
end: 2022-02-01,
name: data_2
},
{
start: 2021-12-01,
end: 2022-01-01,
name: data_3
}
]
Пример выходных данных:
[
{
start: 2021-10-01,
end: 2021-10-31,
data:
[
data_1
]
},
{
start: 2021-11-01,
end: 2021-11-30,
data:
[
data_1,
data_2
]
},
{
start: 2021-12-01,
end: 2022-01-01,
data:
[
data_1,
data_2,
data_3
]
},
{
start: 2022-01-02,
end: 2022-02-01,
data:
[
data_1,
data_2,
]
},
{
start: 2022-02-02,
end: 2022-10-01,
data:
[
data_1
]
}
]