var combinationSum2 = function (candidates, target) {candidates.sort()const len = candidates.lengthlet list = []backtrack([], 0, 0)return listfunction backtrack(temp, cur, sum) {if (sum > target) returnif (sum === target) {list.push([...temp])}for (let i = cur; i < len; i++) {// 剪枝,后续相同元素不需要排序,避免重复if(cur <= i -1 && candidates[i] === candidates[i - 1]) continuetemp.push(candidates[i])sum += candidates[i]backtrack(temp, i + 1, sum)sum -= candidates[i]temp.pop()}}};
