Объединение периодов

131
27 сентября 2017, 11:36

Очень сложно описать задачу, которую мне нужно решить, но я постараюсь.

Есть промежуток времени (основной): предположим, это начало и конец дня, который по умолчанию красный.

Есть массив (А) небольших промежутков времени, которые помещаются в этот первый промежуток. Они могут быть зелеными и красными.

Нужно наложить этот массив на основной промежуток и получить другой массив (В) промежутков, соблюдая несколько правил:

  1. Промежутки массива В должны идти по порядку, соприкасаться, но не пересекаться.
  2. В конечном массиве промежутки должны идти в порядке от меньшего к большему, обязательно соприкасаться с соседями, не иметь пустых мест. Первый промежуток должен начинаться с времени начала основного промежутка, последний -- заканчиваться временем конца основного промежутка.
  3. Цвета в массиве В должны идти поочередно. То есть не допустимо, чтобы два цвета были рядом. В этом случае, промежутки должны быть объединены.
  4. Промежутки массива А имеют приоритет от меньшего к большему. То есть каждый следующий промежуток переопределяет предыдущие другие

Для большей ясности происходящего решил нарисовать диаграмму:

Почему спрашиваю: возможно есть готовые инструменты, библиотеки или оптимальные алгоритмы, которые помогут мне решить эту задачу. Не хочу писать костыли и велосипеды.

Зачем это нужно: красный и зеленый цвета означают занятое и свободное время. Цветами обозначил для упрощения.

Дано: PHP. Оперировать можно чем угодно: объектами DateTimeInterface, объектами League\Period\Period (который тоже в проекте активно используется) или обычными TimeStamp метками. Я там дальше разберусь, что с этим делать.

READ ALSO
Ошибка компиляции LNK1104

Ошибка компиляции LNK1104

При сборке проекта в VS 2015 происходит Ошибка LNK1104 не удается открыть файл "MSCOREElib"

339
Явное приведение типов в C++

Явное приведение типов в C++

Пытаюсь получить в ответе переменную t2 не как тип int, а как floatТ

308
Имплементация SHA-1 (ошибка результата)

Имплементация SHA-1 (ошибка результата)

Здравствуйте, я написала алгоритм SHA-1, но он не правильно вычисляет сам хеш, можете посмотреть в чем может быть проблема, я уже несколько часов...

271
Декодирование JPEG

Декодирование JPEG

Подскажите свободно распространяемую библиотеку (совместимую с Windows) или исходник, в котором из JPEG файла выделялись квантованные косинусные...

213