給定一個(gè)無重復(fù)元素的數(shù)組 candidates 和一個(gè)目標(biāo)數(shù) target 蛔琅,找出 candidates 中所有可以使數(shù)字和
為 target 的組合。candidates 中的數(shù)字可以無限制重復(fù)被選取。
說明:
- 所有數(shù)字(包括 target)都是正整數(shù)缝裁。
- 解集不能包含重復(fù)的組合蒸辆。
示例 1:
輸入:candidates = [2,3,6,7], target = 7, 所求解集為: [ [7], [2,2,3] ]
完整代碼:
/**
* @param {number[]} nums
* @return {number}
*/
var combinationSum = function(candidates, target) {
// 升序
let arr = candidates.sort((m, n)=> m - n);
let res = [];
function def(nums, target, path) {
for (let i = 0; i < nums.length;i++) {
let curPath = [...path, nums[i]];
let curTarget = target - nums[i];
if (curTarget === 0) {
res.push(curPath);
} else if (curTarget >= nums[0]){
def(nums.slice(i), curTarget, curPath);
}
}
}
def(arr, target, []);
return res;
};