LeetCode 筆記 - 377. Combination Sum IV
給定數列求相加等於目標值的組合數量。由於數字可重複且順序不同視為不同組合,本文捨棄遞迴搜尋,改用效率更高的動態規劃(DP)策略。透過逐層累加子問題的解答,能在可接受的時間內精確算出龐大的組合總數。
⚠️ 舊文提醒:本文發佈於約 4 年前,部分內容或指令可能已過時,請斟酌參考。
給定數列與目標數,請給出數列中有幾種相加等於目標數的排列組合
解題思維
終於解到第四題了
如果沒解過一、二、三題,你可以看看
LeetCode 筆記 - 39. Combination Sum
LeetCode 筆記 - 40. Combination Sum II
LeetCode 筆記 - 216. Combination Sum III
這題一樣是用 Depth First Search 跑一次就可以了
你以為我要這麼說?太天真了
這題要用 Dynamic programming 🥰
整體概念是,從 1 開始跑到目標數
如果 candidate 等於目標數,表示多一種可能,因為有新的 candidate 加入
不然就持續加總加入 candidate 之前的可能性
程式碼
1 | class Solution: |
完成 🥰