有重复元素的数组,可以组成的所有子集(无重复)
vector<vector<int>> subsetsWithDup(vector<int>& nums)
{
vector<vector<int>>result;
vector<int>item;
set<vector<int>>res_set;
sort(nums.begin(),nums.ends());
result.push_back(item);
generate(0,nums,item,result,res_set);
return result;
}
private:
void generate(int i,vector<int>&nums,vector<vector<int>>&result,vector<int>&item,set<vector<int>>&res_set)
{
if()
item.push_back(nums[i]);
if(res_set.find(item)==res_set.end()//在res_set集合中,找不到item
{
result.push_back(item);
res_set.insert(item);
}
generate(i+1,nums,result,item,res_set);
result.pop_back();
generate(i+1,nums,result,item,res_set);
}