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

作者: thefattiger (LT)   2018-10-19 10:55:30
※ 引述《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
不過新手的話用現在這種簡樸的做法也沒什麼不可
以後學的工具越來越多自然會知道怎麼優化

Links booklink

Contact Us: admin [ a t ] ucptt.com