2

開始時刻と終了時刻を含むN個のリクエストがあります。重複する可能性のあるリクエストを見つけたい。例:この例で重複しているリクエスト{{R1、R2}、{R2、R3}、{R4、R5、R6}、{R4、R6、R7}}

R7                  ------
R6                -----
R5            ------
R4          -----------
R3      ---
R2    -----
R1   ---

Javaでオーバーラップセットを生成するにはどうすればよいですか?

4

1 に答える 1

2

時間でソートされた間隔エンドポイントのリストを生成します。

開始されたがまだ終了していない間隔のセットを保持しながら、リストを順番に繰り返します。

「開始」エンドポイントに遭遇したら、エンドポイントが属する間隔をセットに追加します。「終了」エンドポイントに到達したら、現在のセットを重複する間隔のセットの 1 つとして出力し、その間隔を「現在の」セットから削除します。

出力の重複を防ぐために、複数の間隔が同時に終了するためのロジックを追加する必要がありますが、それほど難しくありません。

于 2013-03-16T21:58:44.147 に答える