PHPz2017-04-18 09:34:05
新しい作品を作成するたびに、まず現在作成されているセットと重複するセットを見つけてから、重複するセットのペアがあるかどうかを確認する必要があります。存在する場合、そのセットは作成されません。これにより、セットが同じセット内に作成されることがなくなります。
の時点で 3 つのアナウンスがあります。ringa_lee2017-04-18 09:34:05
挿入するときは、テーブルを走査し、現在のタイムスタンプが 2 つのタイムスタンプの間にあるかどうかを判断し、この条件を満たす数値を記録します。 >= 3 の場合、挿入は実行されません。それ以外の場合は、データテーブルに挿入します。
阿神2017-04-18 09:34:05
古典的な線分範囲の問題。 Java については詳しくないので、O(n) のアイデアを教えます。
まず、検証する間隔と交差するすべての間隔を見つけます。間隔の左の端点で小さいものから大きいものに並べ替えます
最初の間隔を CurrentInternal として記憶します
CurrentInternal の場合、次の項目 NextInterval を調べます。CurrentInternal と交差しない場合は、CurrentInternal として記録し、2 にジャンプします。そうでない場合は、交差間隔を Intersection として記録します。
Intersection の場合、NextInterval の後の項目をトラバースします。Intersection と交差する間隔がない場合は、NextInterval を CurrentInterval として記録し、2 にジャンプします。そうでない場合は、交差する間隔が 3 つあることを意味し、終了します。
リスト全体が走査された場合、検証される間隔が正当であることが証明されます。
https://jsfiddle.net/hsfzxjy/7td0rwr2/28/