python 判断复杂包含

目录

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)

你可能感兴趣的:(python基础,python)