Как добавить один интервал, чтобы уменьшить количество отдельных групп?JAVA

Программисты JAVA общаются здесь
Anonymous
Как добавить один интервал, чтобы уменьшить количество отдельных групп?

Сообщение Anonymous »

Я работаю над проблемой оптимизации интервалов. Приведено: < /p>
Список интервалов (каждый из которых определяется началом 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)
ограничения: [/b]

Код: Выделить всё

1 

  Как право следует продвигать в цикле?> 

Подробнее здесь: [url]https://stackoverflow.com/questions/79604041/how-to-add-one-interval-to-reduce-the-number-of-separate-groups[/url]

Вернуться в «JAVA»