LeetCode 刷題之路
在軟體面試的流程中,考個演算法題目,已經變成一個顯學了,因此事前的練習就變成很重要了,就是俗稱的刷題 XDD
一開始練習,就是打開 LeetCode 點開題目,從第一題開始寫,更進階一點,就是一些整理好的 Top Interview Questions 來寫,之後發現照主題練習可能是一個比較好的方式,像是資料結構裡的 Array、Linked List、Queue、Stack…… 等,透過主題式的學習,個人覺得是比較有效率一些,像是一開始學一項技能,會從單一項目開始練,之後再做綜合訓練。
在學習時找到一個覺得很不錯的教學網站:
原 PO 透過主題式的介紹,由簡入深後,再提出樣板,以後看到相同的主題的類型,就可以想到這個樣板,個人覺得是蠻不錯的,如果看到一個題目後,腦袋一片空白,真的是蠻慘的 XD
這個部落格也有將部落格的內容整理成書,自己買了一本,目前看到第二章 XDD
我在刷題時以前是用 Java 寫,現在就改用 Kotlin 來寫,使用的 IDE 就是使用IntelliJ,不過在寫題目時,都需要從 LeetCode 的網站複製題目,有一點麻煩,後來有朋友推薦了一個 Plugin:
就可以在 IDE 內直接將題目和 Test Case 載入,寫完之後還可以直接提交,真的是很方便啊!!
一些設定的細節可以參考這篇文章:
關於刷題的紀錄,可以透過 Notion 的 Database 功能來記錄題目的解法、心得、有沒有需要複習。一旦題目刷了比較多之後,就需要做一些整理,之後要複習也會有一個依據。
找到一個 Template,都可以依照自己所需要的欄位去設定。
要寫一次就記住解法也是蠻困難的,基本上可能都要寫了幾次加上複習,才會對題目比較熟練,這時候就可以用 Anki 來協助複習,將題目輸入進去,就可以透過每天跳出的題目來進行複習,強化對題目的記憶!
Anki的名字,來自於日文「暗記(あんき,寫成羅馬拼音就是annki)」,是一個應用“spaced repetition system (SRSs)”,中文叫做「間隔重複系統」的flashcard(閃卡)軟體。何謂「間隔重複」?我們的大腦在記憶某種資訊後的瞬間就開始遺忘,第一天遺忘的速度是最快的,大約在一天內就會忘掉一半以上,在這之後遺忘的速度就會慢慢減緩,而如果我們能在大概忘了一半的時候複習,下一次這筆記憶被忘掉一半的時間就會被延後(也就是說,記憶的半衰期被延長了)。
Anki 的介紹和使用方法可以參考這篇:
本篇文章主要是紀錄好用的套件和覺得很不錯的實際教學,期許之後再刷題的路上可以事半功倍,大家一起邁向偉大的航道,找到屬於自己的大秘寶!