LeetCodeTop100_39. 組合總和
給你一個 無重復(fù)元素 的整數(shù)數(shù)組 candidates 和一個目標(biāo)整數(shù) target ,找出 candidates 中可以使數(shù)字和為目標(biāo)數(shù) target 的 所有 不同組合 ,并以列表形式返回。你可以按 任意順序 返回這些組合。
candidates 中的 同一個 數(shù)字可以 無限制重復(fù)被選取 。如果至少一個數(shù)字的被選數(shù)量不同,則兩種組合是不同的。?
對于給定的輸入,保證和為 target 的不同組合數(shù)少于 150 個。
?
示例 1:
輸入:candidates = [2,3,6,7], target = 7
輸出:[[2,2,3],[7]]
解釋:
2 和 3 可以形成一組候選,2 + 2 + 3 = 7 。注意 2 可以使用多次。
7 也是一個候選, 7 = 7 。
僅有這兩種組合。
示例 2:
輸入: candidates = [2,3,5], target = 8
輸出: [[2,2,2,2],[2,3,3],[3,5]]
示例 3:
輸入: candidates = [2], target = 1
輸出: []
這種題目一眼搜索回溯;
回溯模板如下:
這里的題目不重復(fù)的取的點(diǎn)在于,設(shè)置idx,因?yàn)榭梢灾貜?fù)取用,所以從小往大取就行;用不用得到小元素是區(qū)別點(diǎn);
所以idx到 候選的size()處就需要停止回溯;
c++代碼如下:
標(biāo)簽: