题目简述:在给定的nums数组里面,找出所有可能的组合,组合的长度不限,但是不能重复
去重这里,很多地方都有用到就是利用下面这段代码来去重
进阶47题
if (i > start && nums[i] === nums[i - 1]) continue
题解
var subsetsWithDup = function (nums) {
let res = []
nums.sort((a, b) => a - b)
var backtrack = function (start, one) {
res.push([...one])
for (let i = start; i < nums.length; ++i) {
// 去重
if (i > start && nums[i] === nums[i - 1]) continue
one.push(nums[i])
backtrack(i + 1, one)
one.pop()
}
}
backtrack(0, [])
return res
};