これは、重なり合う間隔を見つけることに関連しています。間隔のリスト(間隔ツリー)が与えられた場合、その方法を知っています。私が持っているのは、間隔のリストのリストです。例えば、
[2,6], [7,11] [1,3], [5,10], [11,13] [2,5], [6,8]
この結果は次のようになります。
[2,3]、[7,8]
私がしなければならないことは、すべてのリストに共通する間隔のリストを見つけることです。
この問題は、リストのマージに似ていると思いn
ます。問題は、リストのペアごとのマージを適用できないことです。この方法を適用すると、重複する間隔が失われる可能性があります。したがって、すべてのリストを一度に (ペアごとではなく) 考慮して、すべてのリストをマージする必要があります。
インターバルツリーを使用できます。各リストの最初の間隔を間隔ツリーに挿入し、オーバーラップを見つけます。ツリーから最も弱い間隔を削除し、リストの 1 つから次の間隔を挿入します。この方法をどのように使用できるかはまだ完全にはわかりませんが、コストがかかりすぎるようです。
間隔のリストのリストから重複する間隔を見つけるための効率的なアルゴリズムはありますか?
追加情報: リスト内の間隔はソートされます。それらは重複せず、シーケンスを形成します。