0
A
回答
0
好吧,我得到了解決它可以通過貪心算法 做詳細說明: http://www.cs.umd.edu/class/fall2009/cmsc451/lectures/Lec04-interval.pdf
1
你讓出崗位是J1(S1,E1),J2(S2,E2),...,JN( sn,en) 其中s1,s2,s3,...,sn是作業的開始時間,而e1,e2,e3,...,en是作業的結束時間。
現在工作根據其開始時間排序(SI的) (使用任何的算法(O(N LG N))。 還要注意作業#(你或許可以存儲作業#在另一個數組。 當您對作業的開始時間進行排序時,也會對相應的作業#排列)
現在從列表中選擇最後一個作業(現在排序),並將其放入最終答案列表中。
從上一份作業 中以反向方式瀏覽列表,並在上一份作業有時繼續檢查可以執行的作業已經被採納。此作業的結束時間小於或等於上次作業的開始時間。將這份工作添加到您的最終答案列表中。
現在執行此作業的相同程序。從該索引中掃描列表並獲取工作,使其結束時間小於或等於上次添加到最終答案列表中的工作的開始時間。重複此操作直到完成。
現在只需計算最終答案列表中的作業數量。 這是可以完成的作業的最大數量。
整個過程需要O(n lg n)+ O(n)時間。 (如果您使用非基於比較的排序算法(如基數排序)對起始時間進行排序,則可以減少這一點,然後複雜度變爲O(n))。
相關問題
- 1. 如何獲得Jenkins構建時間最長的作業列表
- 2. Ruby on Rails:延遲作業延長作業之間的時間
- 3. 如何安排以多個時間間隔運行的作業
- 4. 長時間運行的作業Spring
- 5. Quartz.Net中的長時間運行作業
- 6. ArrayList排序時間最長的序列
- 7. Cron作業時間表
- 8. Cron作業時間表
- 9. Crontab作業時間表
- 10. Powershell,停止作業時間太長
- 11. 特別長豬作業開始時間
- 12. 每天在用戶配置的時間間隔內安排SQL作業
- 13. 我該如何安排時間表vba的時間表
- 14. 任何時間安排/張貼facebook帖子的Cron作業
- 15. 如何在特定時區的任何時間通過節點時間表模塊安排作業
- 16. 時間表最近時間
- 17. 最短剩餘時間安排
- 18. 使用Cron作業創建的SQL臨時表的持續時間是多長?
- 19. Java Timer在特定時間安排作業 - 忽略dst調整
- 20. 長時間工作
- 21. 每個午夜時間安排cron作業,每個時區用流星
- 22. wordpress安裝時間太長
- 23. Python:將作業安排在兩個預定義時間之間運行
- 24. PHP最長執行時間?
- 25. PHP最長執行時間
- 26. 最長持續時間:dayTimeDuration()
- 27. 間隔時間安排任務的最佳工具?
- 28. Python在特定時間安排工作
- 29. Quartz.net作業完成後的時間間隔重複作業
- 30. 改變Quartz作業時間表
這些工作是否相互依賴? – biziclop 2012-02-10 18:55:08
不,他們不相互依賴所有都是獨立的 – Arjit 2012-02-10 18:59:36
這可能是一個愚蠢的問題,但您可以在O(nlogn)時間對作業列表進行排序,然後從最短的時間開始並添加作業,直到您超過設定時間表。我在這裏錯過了什麼? – biziclop 2012-02-10 19:15:30