2009年12月16日 星期三

TopCoder Algorithm Tutorials - 解題規劃

摘錄自:Planning an Approach to a TopCoder Problem

Pattern Mining and the Wrong Mindset
當解過一定數量的問題後,會發現問題大致上可以分成幾類,於是就會陷入一種「從過去類似問題中找解法」的情況,試著拿過去解過的問題套到眼前的這個問題。這樣的情況並不是很好,特別是當眼前的問題是一個全新的問題時,很容易產生挫敗感。唯有不斷的複習、把每個問題都當成全新的經驗,才能持續進步。

Coding Kata
試試看下面這個練習,它能帶你體驗面對問題的各種可能情況。
嘗試挑一個未解過的問題,開始思考、尋找解法,把解法寫出來、通過測試之後,記下總共花了多少時間解這個問題。接著把程式碼清掉、再寫一次!第二次可能還是會犯些小錯誤,最後再次通過測試後,同樣記下第二次所花的時間,接著再把程式碼清除重新寫一次。第三次就會覺得順多了,完成後也同樣記錄時間。第一個時間表示當你心中沒有任何解法時,理解問題並思考、設計一個解所需要的時間;第二個時間,很意外地,通常只是少了理解問題的時間;而第三次才是真正的當你面對一個問題且能馬上想到解法時,所需要花的時間以及帶給你的感受,記住這個感受作為日後解題時的鼓勵!

(念到Atomic Code開始)