Re: [問題] 大一程設作業想法求解

看板C_and_CPP (C/C++)作者 (LawTea)時間7年前 (2018/10/19 10:55), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串2/4 (看更多)
※ 引述《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
文章代碼(AID): #1RoKUbg3 (C_and_CPP)
文章代碼(AID): #1RoKUbg3 (C_and_CPP)