嗨,旅人你好。
這系列文章將會是我紀錄這從 0 開始 30 天的 Leetcode 解題過程,記錄解題思緒之類之類的,像是日誌的東西,同時也是給自己的挑戰。
在這之前我只有修過必修演算法課,沒有真正意義上刷過任何題。連 Leetcode 網站都沒打開過。
網路上 Leetcode 相關的資料很豐富,很多人整理得很好,這裡大概不會有甚麼乾貨或新東西,如果不感興趣的話可以直接離開了。
但如果你跟我一樣,就是不喜歡寫題目,對刷題特別抗拒,排斥刷題拖到最後一刻,覺得很討厭不想開始,這系列也許可以給你一點勇氣踏出那一步。
首先先去註冊 LeetCode 帳號吧。
拿完帳號後第一個遇到的難題就是:我該刷哪個題單?
瀏覽過很多人刷題的心得文,都不推薦漫無目的在 leetcode 上刷題。幸好有很多人整理好的題單造福後人。
大概瀏覽了一下,大家推薦的基本的題單有:
題目互相有重疊。由於沒有太緊迫時間的壓力,我決定從刷 Grind 169 開始。
LeetCode 的題目有主題標籤,像是 Array, Hash Table, Tree Traversal 等等。網路上有兩種說法:按照主題刷和混著刷。按主題刷的好處是能夠熟練該主題的運用融會貫通,混著刷的好處是能夠學習隨機應變,兩種各有優缺,看到比較多人是按主題刷。
不過別急,對於初心者來說考慮這件事還太早了,先從基本題單開始做,像是課本習題一樣,熟練了再去考慮其他的事情。
畢竟開始才是最重要的。
我的刷題策略很單純,先把題單中 Easy 的題目刷一遍,一邊熟悉語法和複習算法,透過正向回饋慢慢建立信心後再往 Medium 前進。寫題目主要用 C++。
肯定有很多算法知道但不熟練要練習。練功就得是如此,誠實面對自己,一步一腳印打好基礎。
系列標題會按照 Grind 169 的題號,內文題號會是照 Leetcode 網站的編號。
每天大概兩到三題,一個月後應該寫到一部份的 Medium 吧。
一個月後的我對刷題的想法會不會改變呢?
會變得更討厭,還是會變得不排斥了,甚至還會覺得有趣呢?
就等一個月後揭曉吧。