Задача: Отрезки пересечения отрезков
https://t.me/pythonlУсловие: дается два массива, каждый элемент в котором представлен отрезком, значения которого соответствуют соответственно началу и концу.
Необходимо вывести результирующий массив, внутри которого будут представлены отрезки пересечения двух исходных массивов.
Пример:
Ввод: firstList = [[0,2],[5,10],[13,23],[24,25]], secondList = [[1,5],[8,12],[15,24],[25,26]]
Вывод: [[1,2],[5,5],[8,10],[15,23],[24,24],[25,25]]
Ввод: firstList = [[1,3],[5,9]], secondList = []
Вывод: [ ]
Решение :
Python
def intervalIntersection(self, firstList, secondList):
"""
:type firstList: List[List[int]]
:type secondList: List[List[int]]
:rtype: List[List[int]]
"""
firstList.extend(secondList)
firstList.sort()
inter = []
for i in range(1, len(firstList)):
if firstList[i-1][1] >= firstList[i][0]:
inter.append([max(firstList[i-1][0], firstList[i][0]), min(firstList[i-1][1], firstList[i][1])])
firstList[i][1] = max(firstList[i][1], firstList[i-1][1])
return inter