無論你是正在刷題的學生,還是已經在準備面試的求職者,希望這篇分享能給你一些新想法!也算是回饋一下社群,畢竟當年我也是從各種分享文中獲得不少幫助。
這幾乎是進大廠的「必修課」了,尤其是技術面試(Technical Round)常會直接從題庫裡出題。今天就想來聊聊,如何用一個月時間,準備像某G這樣公司的技術面試。主要準備工具
- leetcode.com:主戰場,題目來源
- neetcode.io:超級推薦!它把題目分門別類,整理出經典題型,省下很多自己摸索的時間

路線圖 (Neetcode.io)
通用小貼士(這些是我踩過坑才懂的)
- 同類題型有固定框架
很多題目類型其實有相似的解決模式。先掌握框架,再細調細節,效率會高很多。
- 別在一題上卡太久
如果想了10分鐘還沒頭緒,或者做不出來,真的不用硬撐!有些演算法是前人花了幾十年才想出來的,我們直接學習就好。節省時間更重要。
- 寫筆記的方法
- 不用追求完美工整,自己能看懂就行
- 重點記錄:解題技巧、容易漏掉的邊界情況(edge cases)
- 特別註明時間複雜度,還有為什麼這裡用
<=而不是<(這些小細節面試時常被問到)
- 善用AI工具
Neetcode 的解法不一定每次都最優,有時 LeetCode 討論區也有很好的答案,或者直接問AI。多比較,多學習
- 模擬面試心態
- 實際考試通常只有一次提交機會,所以平時練習就要養成:
- 主動考慮所有邊緣情況 (Edge cases)
- 即使通過了,也看看別人的答案,學習更優雅的解法
- 要能解釋為什麼這樣做,而不只是寫出程式碼
- 語言選擇
能用 Python 就用 Python!語法簡潔,面試時可以更專注在邏輯上。
各題型準備要點(個人整理,不用硬背)
Two Pointers / Sliding Windows
- 思路:想一想left / right pointer 值要改變的conditons
- 框架如下:
class Solution:
def (self, nums: List[int], target: int) -> int:
l, r = 0, len(nums) - 1
while l < r:
if condition:
l += 1
else:
r -= 1
Stack
- LIFO (Last In, First Out)
mystack.append(1) # O(1)
mystack.pop() # O(1)
Binary Search
- 基本框架都長這樣
class Solution:
def search(self, nums: List[int]) -> int:
l, r = 0, len(nums) - 1
while l <= r:
m = (l + r)// 2
if target > nums[m]:
l = m + 1
elif target < nums[m]:
r = m - 1
else:
return m
return -1
Linked List
- 小技巧:善用 dummy node(虛擬節點),可以簡化邊界處理。
Tree
- 都是DFS 和BFS 的變種
Backtracking
- 思路:有系統地探索所有可能的解決方案,同時儘早剪除無效的路徑
- 解題框架
def backtrack(start, path):
# 1. record result (if needed)
res.append(path.copy())
# 2. explore choices
for i in range(start, len(nums)):
# 3. choose
path.append(nums[i])
# 4. explore
backtrack(i + 1, path)
# 5. undo (backtrack)
path.pop()
Heap
- 優勢是只利用
O(1)時間去找 max (或者min) - Python 只有 min-heap,沒有內建的 max-heap:
heapq.heappush() # O(log n)
heapq.heappop() # O(1)
heapq.heapify(x) # O(n)
Greedy
- 核心思路:局部最優 → 全局最優解
- 沒有固定框假
Dynamic Programming
- 思路:解決子問題 → 記憶法儲存這些問題的答案,避免重複求解
- 有三種常見寫法:top-down、bottom-up、space optimized
- 我覺得 top-down 最好理解,初學可以先從這個入手,再到bottom-up
Advanced Graph
- 這部分需要學習一些圖論演算法,不要期望自己當場發明。老實學吧!
Math & Geometry & Bit Manipulation
- 如果時間緊迫,這些出現機率相對低的題型可以優先級放後面。
- 位元操作複習:
x & y # Bitwise AND
x | y # Bitwise OR
~x # Bitwise NOT
x ^ y # Bitwise XOR
x>> # Bitwise right shift
x<< # Bitwise left shift
時間安排建議
理想情況是 3個月 準備期,但如果只有一個月:
- 前2週:按照 neetcode 分類,每天一個主題
- 第3週:針對弱點加強,開始計時練習
- 第4週:模擬面試,練習解釋思路
最後想說...LeetCode 有用嗎?
如果你已經拿到面試邀請,那刷題絕對有用。但如果是平時,我覺得學生有空寫寫也不錯,就當作是「思考遊戲」,像玩數獨一樣訓練邏輯。
不要擔心自己不會做,因為你正在用一種不熟悉的方式思考,所以覺得困難是完全正常的。
每個人都從不會開始,重點是持續練習和學習。祝大家面試順利,拿到心儀的 offer!
如果有其他心得或問題,歡迎留言分享交流!我們都在這條路上一起進步。如果你覺得這篇文章對你有幫助,歡迎請我喝杯珍奶支持我繼續創作!🧋🧋🧋












