/**
* @param {number[]} candidates
* @param {number} target
* @return {number[][]}
*/
var combinationSum = function(candidates, target) {
let arr = candidates.sort((a,b) => a - b)
let res = []
let path = []
const backTracking = function(arr, target, sum, startIndex){
if(sum > target){ return }
if(sum === target){
res.push([...path])
return
}
for(let i = startIndex; i < arr.length && sum + arr[i] <= target; i++){
sum += arr[i]
path.push(arr[i])
backTracking(arr, target, sum, i)
sum -= arr[i]
path.pop()
}
}
backTracking(arr, target, 0, 0)
return res
};
39. 组合总和
最新推荐文章于 2024-07-10 14:03:37 发布