var combinationSum2 = function(candidates, target) {
candidates.sort((a,b)=>{
return a-b;
})
let resultList = [];
backTracking(candidates,target,0,[],resultList);
return resultList;
};
function backTracking(candidates,target,startIndex,path,resultList){
if(target<=0){
if(target === 0){
resultList.push([...path]);
}
return;
}
let i=startIndex;
for(let i=startIndex;i<candidates.length;i++){
path.push(candidates[i]);
backTracking(candidates,target-candidates[i],i+1,path,resultList);
path.pop();
while(candidates[i] === candidates[i+1]){
i++;
}
}
}