看板 C_and_CPP 關於我們 聯絡資訊
※ 引述《y995526 (kn)》之銘言: : 大家安安, : 我這題繳交到online judge的時候TLE(1000ms)了, : 我想了很久還是不知道怎麼改善它的速度, : 希望有大大可以提供我一些想法QQ : 感激不盡~ : 看起來好像是在19行~26行慢掉了 : 學校目前只教了迴圈、條件判斷、陣列 : 還沒教指標、Linked List那些, : 所以應該有快又簡單的解法(?) : 題目: : https://imgur.com/zabzLx2 : https://imgur.com/M6F5KuH : 我打的Code: : https://imgur.com/PSPSG7U 我沒看題目,只看你提的19~26行 這邊要做的是看request裡面有沒有重複的數字,有的話設為0吧 你現在的寫法是O(n^2) 如果是C++可以用std::unordered_set (set class implemented by hashing) 純C的話可能就要自己刻一個簡單的來用了 這樣可以用一個迴圈就完成,達到O(n) 把每次遍歷到的值紀錄到set, 如果該值已經存在於set就把這個index的值設為0 不過新手的話用現在這種簡樸的做法也沒什麼不可 以後學的工具越來越多自然會知道怎麼優化 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 125.227.45.150 ※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1539917733.A.A83.html