(1)不重复组合
class Solution {
private:
vector<vector<int>> vec;
public:
void helper(vector<int>& nums,vector<int> temp,int l) {
if(l>nums.size()) return;
vec.push_back(temp);
for(int i=l;i<nums.size();i++) {
if(i==l || nums[i]!=nums[i-1]) {
temp.push_back(nums[i]);
helper(nums,temp,i+1);
temp.pop_back();
}
}
return;
}
vector<vector<int>> subsetsWithDup(vector<int>& nums) {
sort(nums.begin(),nums.end());
vector<int> temp;
helper(nums,temp,0);
return vec;
}
};