這與查找重疊間隔有關。我知道如何給定一個間隔列表(間隔樹)。我所擁有的是間隔列表。例如,從間隔列表中有效查找重疊間隔
[2,6], [7,11] [1,3], [5,10], [11,13] [2,5], [6,8]
這個結果應該是
[2,3],[7,8]
我需要做的是找到所有列表中常見的間隔列表。
我看到此問題與合併n
列表類似。問題是我無法應用列表的成對合並。應用此方法會導致重疊間隔的丟失。所以我需要將所有列表合併在一起考慮所有列表(而不是成對)。
我可以使用區間樹。將每個列表的第一個區間插入到區間樹中並找到重疊區域。從樹中刪除最薄弱的時間間隔,並從其中一個列表中插入下一個時間間隔。我還沒有完全想到如何使用這種方法,但似乎它會變得太昂貴。
是否有任何有效的算法來從間隔列表中查找重疊間隔。
附加信息: 列表中的間隔進行排序。它們不重疊並形成一個序列。
很抱歉,我失去了你在「這給你跑轉總數」。你能否詳細說明一下。謝謝! – akaHuman
第一個條目仍然是位置。第二個是這一點的變化總和。所以我們開始'[1,1]',然後'[2,1 + 2]',然後'[2,1 + 2-1]'等等(因爲變化遵循'1,2,-1, 0,0,1,-1,-1,0,-1')。 0轉換並不重要,所以我放棄了它們。 – btilly
謝謝!這是一個很好的。 – akaHuman