我的问题与此处提出的问题非常相似: 在重叠区间中查找基本区间
我喜欢那里给出的最佳解决方案,但由于我需要保留额外的关键信息,我需要对该算法进行一些调整/进一步解释。作为背景,这些数字是数据库中参与者的年龄范围。我需要计算重叠,以便我可以在重叠的研究实验室之间平均分配参与者,如果没有重叠,我可以将所有参与者分配给那个实验室。
这就是我得到的:
Interval Lab
{75, 105} A
{100, 120} B
{100, 130} C
这是我想从输入中得到的(所以我知道要查询什么):
Interval Lab(s)
{75, 100} A
{100, 105} A, B, C
{105, 120} B, C
{120, 130} C
使用上一个问题中给出的顶级算法,我可以很容易地得到嵌套: {75, 100, 105, 120, 130} 这导致了间隔: {75, 100} {100, 105} {105, 120} { 120, 130}。这很好,但现在我不知道哪些时间间隔对应于哪些实验室(没有另一个通过列表,一个一个地检查每个实验室,这可能是低效的)。
谁能向我解释如何轻松做到这一点?谢谢您的帮助!