пересечение списков отрезков времени

golang Поиск пересечений списков отрезков времени

У нас есть два списка отрезков упорядоченных отрезков "времени" вида:

1) [1, 5] [7, 10]
2) [2, 8] [9, 12] [13, 15]

-- требуется найти список пересечений этих отрезков, напр. в данном случае ответ будет:

[2, 5] [7, 8] [9, 10]

Возможная визуализация:

--------   ---     --------- --------
  ---   ---   ---       ------    -----  -------- -----       ------

Общая идея решения (алгоритм)

Будем действовать так:

Поиск пересечений отрезков (времени) в массивах - Разбор алгоритмической задачи с собеседований PHP

Задача:
Даны два списка отрезков времени, каждый список упорядочен.

Найдите третий список, в котором будут отрезки, являющиеся пересечениями первых двух списков.

Например для:

[[1, 5], [7, 10], [12, 24]]
[[4, 6], [12, 13], [30, 35]]

Ответом будет:

[[4, 5], [10, 12]]

Разбор решения

В решении будем применять визуализацию:

Subscribe to RSS - пересечение списков отрезков времени