Задача: Отрезки пересечения отрезков 

Задача: Отрезки пересечения отрезков 

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





Report Page