https://pastebin.com/K421Hquf
本來使用 sys 方式讀取測資,
但感覺沒什麼差別,
像類似這種要逐一讀取測資的題目,
是否 TLE 的關鍵都不是用什麼資料結構處理,
而主要是 for 迴圈造成的?
因為從串列, queue, heap 一直改,
感覺都沒差什麼,應該根本問題是在演算法窮舉就無法 AC,
想請問大家協助指導,
感謝!
"最多 500,000 個工作"
你要避免維護一個很長的陣列,這樣容易超時。
"整數可為{-2, -1, 0, 1, 2, ..., 10000}"
題目說 job <= 10000
可以開一個長度 10000 的陣列
裡面記錄著每個 job 的計數 ...
不妨試試 !!
"最多 500,000 個工作"
你要避免維護一個很長的陣列,這樣容易超時。
"整數可為{-2, -1, 0, 1, 2, ..., 10000}"
題目說 job <= 10000
可以開一個長度 10000 的陣列
裡面記錄著每個 job 的計數 ...
不妨試試 !!
https://pastebin.com/RUesBYqY
依照您的提示整體上做了修改,
分數是提升了一點QQ,
認識到有時候直接開個空間操作也不是什麼壞事www
但感覺跟您所想的開陣列的使用方向有些差距哈哈
因為我有注意到您提交答案的記憶體使用量多達 100MB+_+
可能之後再找時間看看有沒有相關題目有類似作法
感謝您的指導教學~謝謝!
我把 2018 年的 code 重新上傳一次,只有 96%
因為現在 server 的效能和 2018 年差很多。
我再改一下,應該還是能 AC
我覺得您這段,效能更該不會很好吧。
List2 = List.copy()
List2.reverse()
index = List2.index(next(filter(lambda x: x!=0, List2)))