Задача кодирования: получение общих диапазонов из списка диапазоновJAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Задача кодирования: получение общих диапазонов из списка диапазонов

Сообщение Anonymous »

У меня возникла проблема с решением задачи по кодированию JAVA. У меня есть список объектов с диапазоном, использующий следующую структуру:
Range[id="FV1", from=2024-01-01, to=2024-12-31]

Из этого списка мне нужно извлечь общие диапазоны. Применяются следующие правила:
  • Все отдельные диапазоны должны быть действительными, чтобы быть общим диапазоном.
  • Список может содержат диапазоны с повторяющимися идентификаторами, что представляет собой отдельный диапазон действия на той же временной шкале, что и идентификатор.
  • Все изменения диапазона действия на одной временной шкале должны привести к созданию отдельного общего диапазона (если применяется правило 1). )
Я попытался обрисовать проблему на примере на этом рисунке. По сути, мне нужно вычислить R1, R2 и R3 как «от-до» объекты диапазона.
Изображение

Пример 1. Ввод :
[Range[id="FV1", from=2024-01-01, to=2024-08-14],
Range[id="FV2", from=2024-04-01, to=2024-12-31],
Range[id="FV3", from=2024-03-05, to=2024-12-28]]

Вывод примера 1:
[Range[id="R1", from=2024-04-01, to=2024-08-14]]

Пример 2 ввода:
[Range[id="FV1", from=2024-01-01, to=2024-08-14],
Range[id="FV2", from=2024-02-01, to=2024-12-31],
Range[id="FV3", from=2024-01-04, to=2024-04-28],
Range[id="FV3", from=2024-04-28, to=2024-12-31]]

Вывод примера 2:
[Range[id="R1", from=2024-02-01, to=2024-04-28],
Range[id="R2", from=2024-04-28, to=2024-08-14]]

Пример 3 (как показано выше)
Ввод:
[Range[id="FV1", from=2024-10-01, to=2024-12-31],
Range[id="FV1", from=2024-12-31, to=2100-01-01],
Range[id="FV2", from=2024-09-03, to=2100-01-01],
Range[id="FV3", from=2024-08-01, to=2025-05-06],
Range[id="FV3", from=2025-05-06, to=2100-01-01]]

Пример 3 (как показано выше) Результат:
[Range[id="R1", from=2024-10-01, to=2024-12-31],
Range[id="R2", from=2024-12-31, to=2025-05-06],
Range[id="R3", from=2024-12-31, to=2100-01-01]]


Подробнее здесь: https://stackoverflow.com/questions/791 ... -of-ranges
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

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