工程師面試必刷 Leetcode!到底怎麼刷題才最有效率? | TechOrange 科技報橘
Search
Close this search box.

工程師面試必刷 Leetcode!到底怎麼刷題才最有效率?

不管是新鮮人、老手或甚至是高階職位,都躲不了面試中的技術考試。而 Leetcode 這個網站收錄了業界所有公司的面試考題,對於軟體工程師來說,Leetcode 刷題幾乎可以說是面試必做的考前複習。然而在茫茫大海般的題庫中,如何才能最有效率的刷題?

開始刷題前,要注意什麼?

刷題是一個需要長時間專注但枯燥的過程,對大多數人來說,刷題不僅不有趣,甚至還有點痛苦。正因如此,在開始刷題前,最好先找到一個自己可以安靜工作並專注超過一小時的空間(也就是先把桌子整理乾淨,讓自己不會刷題到一半就分心去打掃房間)。

Google 軟體工程師 Siddhesh Suthar 建議,在刷題前最好要先找出一天之中,自己最清醒、最適合工作的時段。可能是清晨或深夜,也可以是上班前或下班後,全看個人的時間安排和身體狀況。

每天至少花 1-2 小時或每週 10-15 小時刷題,如果平日要上課或上班,那麼找出自己什麼時候能集中精力是最重要的。在刷題的這段時間,關掉所有社交軟體,將手機靜音 1 小時。

Suthar 也表示,刷題時的重點在於題目的質量,而不是數量。有些人刷了500 多道題,卻還是沒得到工作;有人做了 200 道題,卻幸運地通過了面試。

Suthar 建議,首先選擇一個主題並開始解題,最好以 3:6:1 的比例,處理簡單、中等和困難的問題(也推薦 3:5:2)。另外,從題目答對率可以判斷難易度,也可以參考題目出現在面試中的頻率決定是否優先做題。

掌握 AI 趨勢 & 活動資訊一點都不難!訂閱電子報,每週四一起《AI TOgether》

感謝訂閱!隨時注意信箱的最新資訊

LeetCode 哪些題目最重要?

LeetCode 是全球最大的程式編寫題庫,題目超過 2000 題,且會定期更新題庫。

LeetCode 上的每個問題都可以標記一個或多個主題,包括 Array、HashTable、Tree 等數據結構, Greedy、Divide and Conquer、Sorting 等算法技術,或 Sliding Window、Depth First Search、Topological Sort 等程式模型。其中有半數的問題和陣列 Array 有關,約 25% 的題目和字串 String 相關。

然而,怎麼刷題才最有效率?

Leetcode 將面試常見的 100 道題目整理成一個列表,另外也有最受歡迎的 100 道題目,對於時間緊迫或是比較沒有時間慢慢刷題的人來說,可以直接從這兩份題庫單下手,快速掌握解題手感。

另外,付費版還根據 FAANG 等科技企業分別整理了一份題庫,讓想進入這些企業工作的工程師能初步掌握公司的面試風格和考點,並提前進行模擬練習,且這份列表會不斷進行更新。

如何正確地刷 Leetcode?

LeetCode 最大的問題在於缺乏組織性。雖然題庫中有大量的題目,但是由於數量龐大,常常讓人不知道從哪裡開始下手。如果做 200 題能達到和做 500 題一樣的效果,那應該沒有人會想做 500 題吧?

一般人通常會選擇相同主題的問題,例如先解決與 Arrays 相關的問題,然後再轉向其他主題。雖然這樣的解法能掌握相似的題型,但就少了解題的靈活性。

例如,許多問題可以透過 HashMaps 解決,但其實也可以透過不同的算法技術解決。正確解題的關鍵在於:將新問題歸類到已知問題的能力。這樣的思維不僅讓整個程式撰寫、面試準備過程更有趣,也可以大大增進刷題的效率。

1.  Two Pointer (Arrays, Strings, Fast & Slow Pointer)

Two Pointer 是蠻常聽到的一種解題技巧,也可以說是演算法的解題模板。 Two Pointer 又可以分為左右指標與快慢指標兩種,常被拿來用來做特定條件下的搜尋或是總和計算。

2.  Sliding Window (Arrays, Strings, Hash Tables)

Sliding Window 可以說是面試常見的必考題,是廣義的左右指標中的一種。這類問題一般需要用到雙指標來進行求解,且大多離不開主陣列和子陣列的關係。

3. Tree and Graph Depth First Search (Matrix Traversal)

大多數 Tree 和 Graph 的問題都可以使用深度優先搜索 (DFS) 來解決。深度優先搜尋是 Graph 中的經典演算法,它會儘可能地搜尋樹的分支。

4. Tree and Graph Breadth First Search (Queue, Subsets, Matrix Traversal, Topological Sort)

廣度優先搜索 (BFS) 是一種 Graph 的搜索演算法,是一種非常方便的模式。以 tree 來說,就是把同一深度的節點走完,再繼續向下一個深度搜尋,直到找到目的節點或遍尋全部節點,例如可用找出迷宮中最短路徑的出口。

大多數軟體工程師面試都包括 LeetCode 的問題,只要在面試前狂刷題、勤練習,認真花時間準備,絕對可以獲得相對應的投資回報。

 

【推薦閱讀】

「AI 內容編輯」工作需求大增!他把 AI 生成內容變得更有人味,光兼職就賺逾 11 萬

【輾壓 GPT-4】最快最強的聊天機器人變成 Claude 3!Google 力挺的 Anthropic 成新霸主

【氣!老闆用 AI 監控員工訊息】Slack、Teams 都能看!星巴克、達美航空、沃爾瑪員工訊息被看光

 

*本文開放合作夥伴轉載,參考資料:Medium(1) Medium(2)Medium(3)designgurusReddit,首圖來源:Unsplash

(責任編輯:廖紹伶)