给定两个由一些闭合区间组成的列表,求交集
时间: 2024-05-13 16:14:18 浏览: 74
求两个数组的交集
可以使用双指针的方法求解两个列表的交集。
首先将两个列表按照区间左端点从小到大排序,然后设置两个指针,分别指向两个列表的开头。比较两个指针所指的区间是否有交集,如果有,则将交集加入结果集中;如果没有,则将左端点较小的指针向右移动一位。重复这个过程,直到任意一个指针超出了其所在列表的范围,此时交集已经求出。
以下是 Python 代码实现:
```python
def intervalIntersection(A, B):
i, j = 0, 0
res = []
while i < len(A) and j < len(B):
a1, a2 = A[i]
b1, b2 = B[j]
if a1 <= b2 and a2 >= b1:
res.append([max(a1, b1), min(a2, b2)])
if a2 < b2:
i += 1
else:
j += 1
return res
```
其中,A 和 B 分别表示两个列表,每个元素是一个闭合区间,返回值为两个列表的交集。
阅读全文