区间并集

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(使用前将#替换为@)

区间并集 的相关文章

  • C# 最快的 2 组排序值并集

    合并两组排序值的最快方法是什么 速度 big O 在这里很重要 不清楚 假设这已经被执行了数百万次 假设您不知道值的类型或范围 但有一个有效的方法IComparer
  • 如何在postgres中将整数分钟转换为间隔

    我正在尝试将整数分钟转换为 postgres 中的间隔 是否有任何函数可以帮助我将其转换为间隔 或者我应该将其除以 60 并得到最终结果 20 minutes will be like 00 20 00 as result 最快的方法是与m
  • 如何在不排序的情况下执行UNION? (SQL)

    UNION连接两个结果并删除重复项 同时UNION ALL不删除重复项 UNION并对最终输出进行排序 我想要的是UNION ALL没有重复 也没有排序 那可能吗 这样做的原因是我希望第一个查询的结果位于最终结果的顶部 第二个查询位于底部
  • JavaScript setInterval 立即运行

    我找到了一种立即在 javascript 中运行间隔的解决方案 而不是等待第一个 超时 setInterval function hello console log world return hello 2500 但问题是这个解决方案不起作
  • 无法在 INSERT MySQL 中使用 UNION 吗?

    我有一个运行良好的选择查询 但是当我将其包装到 INSERT 语句中时 出现错误 错误 1064 您的 SQL 语法有错误 检查与您的 MySQL 服务器版本相对应的手册 了解在 SELECT DISTINCT NULL AS 附近使用的正
  • 字符串间隔如何工作?

    我做了一些玩这个答案 https stackoverflow com questions 25308978 what are intervals in swift ranges 25631930 25631930 甚至向 Apple 提出了
  • MySQL:检查某个值是否包含在范围区间内

    我想知道是否可以检查字符串值是否包含在列中 前提是该列包含开始值和结束值 例如 如果表的 NR 列包含以下行 400 50045 76 23 2512 14 19 21 我想找到其中包含值 421 的行 所以答案应该是第一行 这在mysql
  • SQL Server:UNION 后的 INNER JOIN 导致哈希匹配(聚合)缓慢

    这是一个会减慢整个存储过程速度的 CTE select from finalResults where intervalEnd is not null union select two startTime two endTime two i
  • 如何在给定的时间间隔运行 Unix 命令?

    我想运行 Unix 命令 例如ls 通过脚本每隔 5 分钟一次 解释 我有一个 Unix 脚本 在该脚本中我有一个名为 ls 的命令 我希望该脚本中的 ls 命令每 5 分钟运行一次 Use watch The nflag 指定以秒为单位的
  • MYSQL:使用 union 将两个表合并为一个表

    我必须用另外两个表制作一个表 并使用联合 有效的查询是 SELECT FROM tabel1 UNION SELECT FROM tabel2 现在我要做的就是将此结果 数据 放入表3 我已经拥有的表 其列与表1和表2中的列相同 谁能帮我
  • 在联合上分配泛型类型

    TS 中有没有办法通过联合 分布 泛型类型 type Container a value A type Containers a
  • Python:从区间到值的映射

    我正在重构一个函数 给定一系列隐式定义间隔的端点 检查间隔中是否包含数字 然后返回相应的值 不以任何可计算的方式相关 现在处理这项工作的代码是 if p lt 100 return 0 elif p gt 100 and p lt 300
  • Python 中 datetime.timedelta 的人类可读日期时间间隔?

    我发现自己经常需要在 python 配置文件中指定时间跨度 有没有一种方法可以让我在带有 stdlib 的 python 配置文件中指定更易读的时间范围 类似于 PostgreSQL 的 Interval 语法 或者这需要第三方库吗 澄清我
  • 如果未返回,则在一段时间后终止线程

    我有一个线程从网络或串行端口获取一些数据 如果 5 秒内没有收到数据 则线程必须终止 或返回 false 换句话说 如果线程运行时间超过 5 秒 则必须停止 我用 C 编写 但任何 NET 语言都可以 有两种方法 1 封装超时 从网络或串行
  • mysql 在 sum() 函数上使用 concat,例如 concat(sum(col1),"%")

    我正在尝试合并多个查询 但其中一个查询使用 sum 当我尝试在此列上应用 concat 时 我得到不需要的 blob 结果 我如何在聚合列上应用 concat 和 union 我期待这个结果 SELECT row 1 col1 UNION
  • 使用 pandas.date_range() 生成多个日期时间,每周两个日期

    我在用着pd date range start date end date freq W MON 每周一生成每周频率日期时间start date 2017 01 01 and end date 2017 12 31 这意味着每月大约生成 4
  • 将两个表合并为一个输出

    假设我有两张表 已知营业时间 ChargeNum CategoryID Month Hours 111111 1 2 1 09 10 111111 1 3 1 09 30 111111 1 4 1 09 50 222222 1 3 1 09
  • 如何在 Laravel 中编写联合查询?

    我正在使用 laravel 5 0 并且我有 mysql 查询 SELECT surat masuk id surat surat masuk nomor surat FROM surat masuk WHERE EXISTS SELECT
  • 查找重叠间隔序列中最大和的算法

    我试图解决的问题在数轴上有一个间隔列表 每个间隔都有一个预定义的分数 我需要返回最大可能的总分 问题是间隔重叠 并且重叠间隔中我只能使用一个 这是一个例子 Intervals Score 0 5 15 4 9 18 10 15 12 8 2
  • MySQL - 如何将列逆透视到行?

    ID a b c 1 a1 b1 c1 2 a2 b2 c2 如何将行重新组织为ID columntitle value 1 a1 a 1 b1 b 1 c1 c 2 a2 a 2 b2 b 2 c2 c 你正在尝试unpivot数据 My

随机推荐