1

「n」回の予定が与えられます。各予定には、開始時刻と終了時刻が含まれています。競合するすべての予定を効率的に再調整する必要があります starttime と endtime は、数分から数年の範囲になる可能性があります。投稿を見ました: O(n) 時間で重複する予定を見つけますか? これはこれと非常によく似ています。しかし、疑問が残ります。

私の質問は、並べ替えられたスケジュールが指定されている場合、次のように言うことです: (6:30-6:35), (6:40-7:10) (7:25-7:40), (7:35-7: 50)など。

スケジュール リストをたどって、前の予定が終わった後にのみ次の予定が開始されるようにすることはできませんか? その場合、予定をスケジュールするための可能な時間に非常に厳しい制限を適用しています。この例では、7:35 に始まる予定は、最後の予定が終了する前 (7:40) であることがわかっているため、競合しています。同様の質問のリンクで最も評価の高いソリューションに記載されているように、ツリーまたはハッシュ マップを作成してソリューションを複雑にする必要がありますか?

このチェックを回避し、この条件が無効であることを証明できるケースを指摘してください。

4

2 に答える 2

1

リンクされた回答では、リストの予定はソートされていないため、より複雑なソリューションです。予定が並べ替えられていれば、リストをたどって、これまでに確認された最新の終了時刻を追跡できることは間違いありません。

また、リストの並べ替えはO(n lg n)であるため、解決策が必要な場合は、並べ替えてからトラバースすることはできませんO(n)

于 2012-09-24T02:53:52.610 に答える
0

もちろん、「ソートされたスケジュールが与えられている」と言うように、ソリューションは O(n) 時間で実行できます。あなたが参照した質問は、時間がソートされていないと仮定しています。

于 2012-09-24T02:53:11.860 に答える