LINUX.ORG.RU

История изменений

Исправление x3al, (текущая версия) :

datetime.timedelta(seconds=1)

Строго на 1 секунду позже или ± секунду? Если строго, то пробегаешься по списку и делаешь ends = {x[end] + datetime.timedelta(seconds=1): x for x in your_list} плюс used_stuff = set(), потом для каждого элемента тупо проверяешь, есть он в used_stuff, если есть — скипаешь, если нет — ищешь в ends, нашёл — склеиваешь и добавляешь в used_stuff то, с чем склеил, не нашёл — возвращаешь как есть. O(nlogn) вроде как.

Исходная версия x3al, :

datetime.timedelta(seconds=1)

Строго на 1 секунду позже или ± секунду? Если строго, то пробегаешься по списку и делаешь ends = {x[end] + datetime.timedelta(seconds=1): x for x in your_list} плюс used_stuff = set(), потом для каждого элемента тупо проверяешь, есть он в used_stuff, если есть — скипаешь, если нет — ищешь в ends(), нашёл — склеиваешь и добавляешь в used_stuff то, с чем склеил, не нашёл — возвращаешь как есть. O(nlogn) вроде как.