java - 算法问题:同一时间不能存在三个公告
高洛峰
高洛峰 2017-04-18 09:32:05
0
7
372

1.创建公告时有生效的时间段:开始时间和过期时间;

2.当创建新的公告时,要保证同一时间点不能存在三个同时生效的公告

高洛峰
高洛峰

拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...

全員に返信(7)
PHPzhong

新しい作品を作成するたびに、まず現在作成されているセットと重複するセットを見つけてから、重複するセットのペアがあるかどうかを確認する必要があります。存在する場合、そのセットは作成されません。これにより、セットが同じセット内に作成されることがなくなります。

の時点で 3 つのアナウンスがあります。
いいねを押す +0
洪涛

SQL を書くだけで完了です:

リーリー

結果が 3 未満の場合は、作成します。

いいねを押す +0
左手右手慢动作

挿入するときは、テーブルを走査し、現在のタイムスタンプが 2 つのタイムスタンプの間にあるかどうかを判断し、この条件を満たす数値を記録します。 >= 3 の場合、挿入は実行されません。それ以外の場合は、データテーブルに挿入します。

いいねを押す +0
阿神

2 つのタイム ポイントを使用して、この期間内に効果的な発表が何件あるかを数えてください。
アイテムは 3 つ以上作成できません。

いいねを押す +0
阿神

新しい発表と重なる時間を常に見つけて、毎日統計を作成する愚かな方法

いいねを押す +0
小葫芦

書いてみましたので参考にしてください

リーリー
いいねを押す +0
阿神

古典的な線分範囲の問題。 Java については詳しくないので、O(n) のアイデアを教えます。

  1. まず、検証する間隔と交差するすべての間隔を見つけます。間隔の左の端点で小さいものから大きいものに並べ替えます

  2. 最初の間隔を CurrentInternal として記憶します

  3. CurrentInternal の場合、次の項目 NextInterval を調べます。CurrentInternal と交差しない場合は、CurrentInternal として記録し、2 にジャンプします。そうでない場合は、交差間隔を Intersection として記録します。

  4. Intersection の場合、NextInterval の後の項目をトラバースします。Intersection と交差する間隔がない場合は、NextInterval を CurrentInterval として記録し、2 にジャンプします。そうでない場合は、交差する間隔が 3 つあることを意味し、終了します。

  5. リスト全体が走査された場合、検証される間隔が正当であることが証明されます。


JS で書かれたデモが付属しています。楽しんでいただければ幸いです

https://jsfiddle.net/hsfzxjy/7td0rwr2/28/

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート