[Leetcode] 刷題新手先備與相關知識分享

Haren Lin
Aug 26, 2018

--

在這邊想跟大家分享Leetcode這個廣為coder所知的網站,然而對於剛接觸coding的人,雖然只有聽過Leetcode卻不知道Leetcode有多好用。以下有幾篇文章,我個人認爲寫得相當的鉅細靡遺,幫助了我認識Leetcode以及所謂的刷題,還有更多與寫程式及求職的相關知識。

相信看完上述的文章後,大家對於Leetcode這個網站的用意及介面能更為熟悉。以下,我將分享我是如何刷題的?以及如何刷題才能提升效率?

首先,如果你對於Data Structure以及Algorithm不熟悉,我強烈建議可以到Coursera或是Udemy上面先聽課,或者是查詢UCLA CS32課程,把他們的講義順過一遍。(P.S. UCLA CS32的課程是以C++為主體,非本科者不推薦)

刷題的過程中,我個人認為最忌諱的就是使用Pick One這個功能,除非你對於所有資料結構與題型都很熟悉,不然隨機的挑選題目來訓練,並沒有太大用意。因為你沒有「對症下藥」。

Do not use “Pick One”

何謂「對症下藥」?~
1. 刷題最重要的事情是要先知道自己對於哪個主題的題目不太熟悉,需要多加練習。在學習資料結構與演算法的過程中,你一定會碰到你不熟悉的主題,或是比較不那麼融會貫通的演算法。此時你要做的事情是把他列出來,把最不熟悉的東西放在第一順位,排序好後接著進行下一步。

2. 找到不熟悉的主題後,以這個主題作為搜尋的關鍵字,找出所有與他有關的題目。以我自己為例,我自己對於dynamic programming很不熟,把dynamic programming作為query搜尋後,會得到如下圖得結果。

這個時候,我會選擇將這些題目依照Difficulty進行排序,然後從簡單的且答對率高的題目開始練習。把同個主題的題目先練習到一定的熟度,抓到這些題目的中心思想及核心後,在練習Medium難度以上的題目。這樣的練習方法,不僅能先確立你自己的基本觀念,更可以使你練習較難的題目時,挫折感比較不會那麼大。

3. 練習完一道題目後,你提交成功後的畫面中,最重要的其實不只是Accepted,你往往會看到Leetcode系統推薦你其他的題目。這些題目都是與你當前寫的題目有一定相關性或是相似度的,這時候我會點進去,把這些類似的題型也進行練習,確保我對於某個主題的題目是否有了解及融會貫通。

P.S. 謝謝您用心看完文章,如果喜歡我的內容,請點個拍手或留言吧~也順手按下follow鍵,隨時追蹤新文章。歡迎不吝賜教~

補充:本頁面會不定時的更新文章。(2021/03/11 Updated)

--

--

Haren Lin

MSWE @ UC Irvine | MSCS @ NTU GINM | B.S. @ NCCU CS x B.A. @ NCCU ECON | ex-SWE intern @ TrendMicro