タイトルが素晴らしいではありません予定の集合の範囲を取得し、私は提案を開いています。私は予定のセット、開始時刻と終了時刻と各を持って時間の重複のリストが
:
は、ここに私の基本的な問題です。
このセットを指定すると、n
の重複する予定があるすべての期間で、範囲の新しいセット[ start_time, end_time ]
が表示されます。
そうは、例えば、セット(タイムスタンプが読みやすくするために少数のように簡略化)
[ [ 1, 3 ], [ 2, 4 ], [ 2, 4 ], [ 5, 7 ], [ 6, 8 ], [ 7, 8 ] ]
...と私はそれらの中で発生、少なくとも3種類の予定を持っているすべての範囲をしたいと仮定すると与えられました結果は
...これは少しあまり抽象的にするために[ [ 2, 3 ], [ 6, 7 ] ]
する必要があります
私は、常に3人のインストーラをスタッフが常駐させて24時間のウィンドウティントサービスを実行するとします。私のウェブサイトでは、利用可能なインストール時間をすべて表示したいと考えています。だから私はすでに3つの予定を予定している時間範囲を隠す必要がある。
は必ずしもコードを書く人を求めていない - 誰かがに私を指すことができることを問題のこのクラスのためのよく知られたアルゴリズムがありますならば、私はそれを感謝します。
ありがとうございました。私はノードでこれを実装することがありますので
[EDIT]はjavascriptのタグを追加しましたが、答えはJSである必要はありません。
[EDIT 2]私はかなり一般的な解決策を探して、それでは、予定が(時間または30分塊に正規化されていない)とあなたと仮定すると、任意の期間
を終了同様の質問があります:https://stackoverflow.com/questions/12283559/find-overlapping-appointments-はin-on-time?rq = 1 –