程序查找重叠的间隔并在Python中以升序返回

假设我们有一个封闭间隔列表和另一个间隔列表。每个列表分别是不重叠的,并且以不降序排列。我们必须找到以非降序排列的两个间隔的重叠。

因此,如果输入像inv1 = [[50,100],[190,270],[310,330]] inv2 = [[40,120],[180,190]],则输出将为[ [50,100],[190,190]]

为了解决这个问题,我们将遵循以下步骤-

  • ans:=一个新列表

  • i:= 0,j:= 0

  • 当i <A的大小而j <B的大小时

    • j:= j + 1

    • 我:=我+ 1

    • 插入间隔[开始,结束]到ans

    • 如果开始<=结束,则

    • 如果A [i,1] <B [j,1],则

    • 除此以外,

    • 返回ans

    让我们看下面的实现以更好地理解-

    示例

    class Solution:

       def solve(self, A, B):

          ans = []

          i = 0

          j = 0

          while i < len(A) and j < len(B):

             start = max(A[i][0], B[j][0])

             end = min(A[i][1], B[j][1])

             if start <= end:

                ans.append([start, end])

                if A[i][1] < B[j][1]:

                   i += 1

                else:

                   j += 1

             return ans

    ob = Solution()inv1 = [[50, 100],[190, 270],[310, 330]]

    inv2 = [[40, 120],[180, 190]]

    print(ob.solve(inv1, inv2))

    输入值

    [[50, 100],[190, 270],[310, 330]], [[40, 120],[180, 190]]

    输出结果

    [[50, 100], [190, 190]]

    以上是 程序查找重叠的间隔并在Python中以升序返回 的全部内容, 来源链接: utcz.com/z/316055.html

    回到顶部