区间并集

2024-02-15

我有一个代表间隔的类。该类有两个可比较类型的属性“start”和“end”。现在我正在寻找一种有效的算法来获取一组此类间隔的并集。

提前致谢。


按其中一个术语(例如,开始)对它们进行排序,然后在浏览列表时检查与其(右侧)邻居的重叠。

class tp:
    def __repr__(self):
        return "(%d,%d)" % (self.start, self.end)

    def __init__(self, start, end):
        self.start = start
        self.end = end


s = [tp(5, 10), tp(7, 8), tp(0, 5)]
s.sort(key=lambda self: self.start)
y = [s[0]]
for x in s[1:]:
    if y[-1].end < x.start:
        y.append(x)
    elif y[-1].end == x.start:
        y[-1].end = x.end
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

区间并集 的相关文章

  • 如何从 Microsoft Access 的附件字段查询附件数量?

    我的一位用户有一个 Microsoft Access 数据库 并且在表中他有一个附件字段 在他的一个查询中 他想要返回该字段包含的附件 数量 我试图让它发挥作用 但没有成功 我尝试创建一个 VBA 模块并将字段传递给它 但它对我来说出错了

随机推荐