У меня возникла интересная проблема:
- У меня есть несколько диапазонов дат, которые могут перекрываться
- у каждого из них есть имя
Можно ли "пересекать" диапазоны тезисов? То есть для генерации:
- новый набор диапазонов, где ни одна не перекрывает остальные
- каждый из этих новых диапазонов имеет список соответствующих имен
Возможно, я смогу сделать это более графическим. Это то, что у меня есть:
a |------------------------------|
b |-------------------|
c |-----------------|
Это то, что я хотел бы получить:
|------|---------|-------|-----|-----|
a a,c a,b,c a,b b
Я нашел решение такого рода работ, но которое не изящно:
- Я преобразую каждый диапазон (от, до) в список дней (d1, d2, d3 и т.д.).
- Я группирую имена по дням
- Я объединяю группы, которые содержат одинаковые имена для воссоздания диапазонов
Можете ли вы придумать лучшее решение? Я работаю с С#, но любая независимая от языка идея будет высоко оценена. Спасибо!