• 【leetcode】986. Interval List Intersections


    题目如下:

    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.

    (Formally, a closed interval [a, b] (with a <= b) denotes the set of real numbers x with a <= x <= b.  The intersection of two closed intervals is a set of real numbers that is either empty, or can be represented as a closed interval.  For example, the intersection of [1, 3] and [2, 4] is [2, 3].)

    Example 1:

    Input: A = [[0,2],[5,10],[13,23],[24,25]], B = [[1,5],[8,12],[15,24],[25,26]]
    Output: [[1,2],[5,5],[8,10],[15,23],[24,24],[25,25]]
    Reminder: The inputs and the desired output are lists of Interval objects, and not arrays or lists.

    解题思路:因为A与B的最大长度是1000,因此O(n^2)的时间复杂度是可以接受的。依次比较A与B中的所有元素,求出交集即可。

    代码如下:

    # Definition for an interval.
    class Interval(object):
        def __init__(self, s=0, e=0):
            self.start = s
            self.end = e
    
    class Solution(object):
        def intervalIntersection(self, A, B):
            """
            :type A: List[Interval]
            :type B: List[Interval]
            :rtype: List[Interval]
            """
            res = []
            for a in A:
                for b in B:
                    if a.end < b.start:
                        break
                    elif a.start > b.end:
                        continue
                    else:
                        res.append(Interval(max(a.start,b.start),min(a.end,b.end)))
            return res
  • 相关阅读:
    [高精度模板][Pascal]整数加、减、乘、除、开方等
    [poj2528]求最后未完全被其它线段覆盖的线段个数
    [POJ3468]线段树模板
    火车进出栈问题(强化版)
    手把手教上Getchu.com
    集合删数
    [SBT模板题]HNOI2002 营业额统计
    离散化Pascal模板
    hdu 4507 吉哥系列故事——恨7不成妻
    组合数学总结
  • 原文地址:https://www.cnblogs.com/seyjs/p/10351205.html
Copyright © 2020-2023  润新知