Список интервалов (каждый из которых определяется началом a и end b , оба включительно) < /p>
Число k, которое определяет максимальный размер одного дополнительного интервала, мы можем вставить в список < /p>
. (Непересекающиеся) интервалы после слияния минимизированы.
Код: Выделить всё
Intervals = [(1, 5), (2, 4), (6, 6), (7, 14), (16, 19)]
k = 2
Option 1:
Add interval (5, 7) => 7-5=2 =k, → Merged result:
[(1, 5), (2, 4), (5, 7), (6, 6), (7, 14)] → merges into one group
and
[(16, 19)]
→ Total disconnected groups: 2
Option 2:
Add interval (14, 16) instead → results in 3 groups:
[(1, 5), (2, 4)], [(6, 6)], [(7, 14), (14, 16), (16, 19)]
So, the best result is 2 disconnected intervals.
< /code>
Также добавлен новый интервал может охватывать множественные существующие промежутки.(1,3),
(4,6),
(7,9),
(10,11),
(13, 15)
< /code>
Добавление нового интервала (3,13) здесь, 13-3 = 10 = k создает одну группу: < /p>
(1,3), (3,13), (4,6), (7,9), (10,11), (13, 15)
Код: Выделить всё
1
Как право следует продвигать в цикле?>
Подробнее здесь: [url]https://stackoverflow.com/questions/79604041/how-to-add-one-interval-to-reduce-the-number-of-separate-groups[/url]