方法一
实现思路


实现代码
class Solution {
public:
void generate(int i,vector<int> item,vector<int> &nums,set<vector<int>> &res){
if(i>=nums.size()) return;
item.push_back(nums[i]);
if(!res.count(item))
res.insert(item);
generate(i+1,item,nums,res);
item.pop_back();
generate(i+1,item,nums,res);
}
vector<vector<int>> subsetsWithDup(vector<int>& nums) {
sort(nums.begin(),nums.end());
vector<int> item;
set<vector<int>> res;
vector<vector<int>> re;
res.insert(item);
generate(0,item,nums,res);
set<vector<int>>::iterator it=res.begin();
for(;it!=res.end();it++){
re.push_back(*it);
}
return re;
}
};
提交结果及分析
