My answer / AC
/**
* @param {number[]} candidates
* @param {number} target
* @return {number[][]}
*/
var combinationSum = function(candidates, target) {
let res = [];
let dfs = function(pos, target, arr) {
if(target==0) {
res.push(arr);
return;
}
if(target < 0) return;
for(let i=pos; i<candidates.length; i++){
dfs(i, target-candidates[i], [...arr, candidates[i]]);
}
}
dfs(0, target, []);
return res;
};
Recap
和Combination Sum Medium II 类似的写法,都是通过深度遍历思路来递归。只不过是给出的candidates是没有重复的数字的。
网友评论