程序查找重叠的间隔并在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]]
热门推荐
10 读书祝福语女生短句简短
11 感谢同事新婚祝福语简短
12 感谢教官文案祝福语简短
13 员工聚会蛋糕祝福语简短
14 元宵发客户祝福语简短
15 给团队信心祝福语简短
16 医美的祝福语大全简短
17 异国姻缘的祝福语简短
18 兄妹拍照祝福语简短的话