我的問題是非常相似的一個問這裏(重疊和不重疊): Finding elementary intervals in overlapping intervals找到所有的間隔重疊的間隔
我想給那裏的頂級解決方案,但我需要的算法的一些調整/進一步的解釋由於我需要保留一個額外的關鍵信息。正如背景一樣,這些數字是數據庫中參與者的年齡範圍。我需要計算重疊,以便我可以在重疊的研究實驗室之間平均分配參與者,如果沒有重疊,我可以將所有參與者分配給該實驗室。
這就是我得到:
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}。這很好,但現在我不知道哪些間隔對應於哪個實驗室(沒有再次通過列表,逐個檢查每個實驗室,這可能是低效的)。
任何人都可以向我解釋如何輕鬆做到這一點?感謝您的幫助!
這是功課? – user845279
不,這是我幫助管理的數據庫志願者工作 – LeoPardus