目录
python 判断复杂包含
a和b都是拍好序的:
python 判断复杂包含
a=[10,13,15]
b=[[9,11],[11,13],[13,16]]
b的子项是区间,返回b中子区间包含a其中元素的子项
if __name__ == '__main__':
a = [10, 11, 15]
b = [[9, 11], [11, 13], [13, 16]]
# 筛选出包含a中任意元素的子区间
result = [interval for interval in b if any(start <= item < end for item in a for start, end in [interval])]
print(result)
a和b都是拍好序的:
a = [10, 13, 15]
b = [[9, 11], [11, 13], [13, 16]]
# 初始化指针
result = []
a_ptr = 0 # 指向a的指针
b_ptr = 0 # 指向b的指针
# 双指针遍历
while a_ptr < len(a) and b_ptr < len(b):
start, end = b[b_ptr]
current_a = a[a_ptr]
if start <= current_a < end:
# 如果a的当前元素在b的当前区间内,则将该区间加入结果
result.append(b[b_ptr])
a_ptr += 1 # 移动到a的下一个元素
elif current_a < start:
# 如果a的当前元素小于b的当前区间的起点,则移动到a的下一个元素
a_ptr += 1
else:
# 如果a的当前元素大于b的当前区间的终点,则移动到b的下一个区间
b_ptr += 1
print(result)