leetcode39.组合总和
leetcode39.组合总和
题目
给定一个无重复元素的正整数数组 candidates 和一个正整数 target ,找出 candidates 中所有可以使数字和为目标数 target 的唯一组合。
candidates 中的数字可以无限制重复被选取。如果至少一个所选数字数量不同,则两种组合是唯一的。
对于给定的输入,保证和为 target 的唯一组合数少于 150 个。
用例
输入: candidates = [2,3,6,7], target = 7
输出: [[7],[2,2,3]]
输入: candidates = [2,3,5], target = 8
输出: [[2,2,2,2],[2,3,3],[3,5]]
输入: candidates = [2], target = 1
输出: []
输入: candidates = [1], target = 1
输出: [[1]]
输入: candidates = [1], target = 2
输出: [[1,1]]
求解
/**
* @param {number[]} candidates
* @param {number} target
* @return {number[][]}
*/
const combinationSum = (candidates, target) => {
let res = [];
find_sum_target(0, [], 0);
return res;
function find_sum_target(index,tmp,sum){
if(sum>target){
return
}
if(sum==target){
res.push(tmp.slice())
return
}
for(let i = index;i<candidates.length;i++){
tmp.push(candidates[i]);
find_sum_target(i,tmp,sum+candidates[i])
tmp.pop()
}
}
};

浙公网安备 33010602011771号