🎯 什麼情境該想到我
當你面對一個計算/最佳化問題、暴力解太慢、想不到更好解法時。先辨認它屬於哪種策略。
⚙️ 怎麼用(辨認問題型態 → 套對應策略)
- 分治(Divide & Conquer):能把問題拆成同型的小問題、各自解完再合併 → 如合併排序、快排、二分。
- 貪婪(Greedy):每一步都取「當下看起來最好」的選擇即可得全域最佳 → 如區間排程、Huffman。(要能證明貪婪選擇性質)
- 動態規劃(DP):有重疊子問題 + 最佳子結構 → 把子問題結果記下來(記憶化/表格),避免重算 → 如背包、最長公共子序列。
- 想不到時:先寫暴力解,再找「重複計算」或「可拆解」的結構往上述三類靠。
🧪 我實際套用的紀錄
- 2026-07-15:(待填)
⚠️ 注意
- 貪婪不是萬用——很多問題貪婪會得到次佳解,需要 DP。用小例子驗證。
🔗 相關工具
- 工具-時間複雜度分析 —— 挑策略的量尺,判斷換策略後真的降階了還是只是換寫法
- 工具-程式問題解決策略 —— 上位流程,這張是它「辨認問題類型」那一步的專用工具箱