快速學習Leetcode的6個步驟

步驟一、先嘗試自己解決問題

當然,第一不一定是自己嘗試去思考如何解決問題。Leedcode中的題目,難度都是一層層疊上去的,一般都是由基礎概念的Easy,到兩三種Easy組合而成的Medium,再到兩三種Medium組合而成的Hard。

在Easy學會觀念後,在遇到Easy的題目時,先嘗試去用學會的觀念解題;遇到Medium的題目時,嘗試去推理拆解題目,多半能發現解題的線索;遇到Hard題時,先利用在Medium學會的分析技巧,拆解題目後,再一一破解。

步驟二、如果一段時間解決不了就去看答案

Leetcode終歸只是練習,在上面花太多時間就是本末倒置了,而且如果你在某一題卡了很久,基本上就等於你沒有具備相關的知識或是沒有將知識連結起來了,這個時候看答案反而是最容易吸收的狀態。

偷看答案並不是什麼可恥的事情,也不代表實力太差。每一道題目後面的原理及概念,都是過去幾百年科學發展的結果,許多時候,我們只是找不到答案,而不是想不到答案。

步驟三、解完題目後進行複雜度分析

不論是自己解完題目,或是看完答案才寫出來的題目,最後都要嘗試去進行複雜度分析。複雜度分析不僅僅是面試可能出現的考題,當你熟悉複雜度分析之後,你就會習慣性地去比較不同解決方案所要浪費的成本,能幫助你做出更好的決策。

步驟四、將解決方案從直覺解到最佳解按步驟解出來

直覺解或者可以說是暴力解法是最初階的解法,也可以說是最佳解的基礎,先有直覺解之後,才能發展成為最佳解。雖然有人可能會認為說,直接把最佳解背下來就好了, 但多數的最佳解是只適合當下那道題型的最佳解,而實際工作上遇到的,也不一定能全部使用最佳解來解決。

另一方面,從最初階的直覺解開始慢慢推導成最佳解,可以訓練你開發最佳解的能力,讓你在遇上不同的問題時,能夠有條理的去一個步驟一個步驟最佳化系統。

步驟五、記錄下來

當前面的步驟都做完之後,從頭到尾將整個解題過程總結下來紀錄成筆記,加深記憶力的同時,也訓練總結問題與解決方案的技巧。

步驟六、過段時間重複一次步驟一到五

Leetcode的題目很多,多到刷不完,當刷到一個階段之後,回去重新複習做過的題目,尤其是透過看答案解決的問題,可以嘗試調用自己的記憶把解題方式推導出來,重複一兩次之後,你可能就會發現,題目其實沒有那麼難,都和過去做過的題目有一定的關連,到這個程度,相信過去許多的難題現在應該都難不倒你了。

在〈快速學習Leetcode的6個步驟〉中有 1 則留言

  1. 自動引用通知: 【LeetCode】 刷題地圖 - 人生自習室

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。

回到頂端