LeetCode 986 Interval List Intersections (Python)

Posted by 小明MaxMing on May 23, 2020

题目

Given two lists of closed intervals, each list of intervals is pairwise disjoint and in sorted order.

Return the intersection of these two interval lists.

解题思路

两个指针分别指向两个数组的区间,如果两个区间不想交,移动结束位置靠前的区间到下一个位置。

如果两个区间相交,求出相交的区间,同样移动结束位置靠前的区间到下一个位置。

代码

class Solution:
    def intervalIntersection(self, A: List[List[int]], B: List[List[int]]) -> List[List[int]]:
        i, j, res = 0, 0, []
        while i < len(A) and j < len(B):
            if A[i][1] < B[j][0]:
                i += 1
            elif B[j][1] < A[i][0]:
                j += 1
            else:
                res.append([max(A[i][0], B[j][0]), min(A[i][1], B[j][1])]) 
                if A[i][1] < B[j][1]:
                    i += 1
                else:
                    j += 1
        return res

视频讲解 YouTube<--欢迎点击订阅

视频讲解 bilibili<--欢迎点击订阅