dynamic-programming
掌握動態規劃 (DP) 模式,包含備忘錄、表格化與狀態設計的完整實作,提供可應用於生產環境的解決方案。
簡介
動態規劃 (DP) 技能模組專為軟體工程師、學生及競賽程式設計者打造,旨在解決複雜的最優化問題。本技能提供一套紮實的開發框架,引導使用者將遞迴問題轉化為高效的迭代解決方案。透過專注於狀態定義、遞迴關係、邊界條件、計算順序及空間複雜度優化,本技能協助使用者將指數時間複雜度的暴力解法轉換為 O(n) 或 O(n*W) 的高效演算法。無論是在技術面試準備、生產環境演算法優化,或是開發需要高效率資源管理的軟體元件,本技能均能發揮關鍵作用。使用者可藉此處理典型的動態規劃範式,包含費氏數列變體、0/1 背包問題、最長共同子序列 (LCS)、零錢兌換及最長遞增子序列 (LIS)。
-
提供包含使用 functools.lru_cache 的由上而下備忘錄實作,以及由下而上的表格化迭代策略。
-
內建進階空間優化技術,在適用情況下將記憶體開銷從 O(n) 降至 O(1)。
-
提供用於背包問題、序列比對與組合優化的模組化程式碼模式,確保高度的程式碼複用性。
-
具備嚴格的參數驗證機制,並針對遞迴深度與記憶體限制提供穩健的錯誤處理。
-
符合 SASMP v1.3.0 協議規範,可無縫整合至資料結構演算法助手代理框架中。
-
輸入需求:預期接收序列清單、整數目標值,以及選用的備忘錄字典,以確保函數呼叫的彈性。
-
適用情境:最適合用於具有重疊子問題 (overlapping subproblems) 與最佳子結構 (optimal substructure) 特性的演算法難題。
-
使用建議:當遞迴深度成為效能瓶頸時,建議優先採用迭代表格化方法,以避免呼叫堆疊溢位。
-
整合性:可透過 Claude Code 的斜線指令直接調用,自動生成程式碼模板並對既有演算法進行最佳化。
倉庫統計
- Star 數
- 3
- Fork 數
- 0
- Open Issue 數
- 0
- 主要語言
- Python
- 預設分支
- main
- 同步狀態
- 閒置
- 最近同步時間
- 2026年5月3日 下午09:32