1 //套模板 2 class Solution 3 { 4 vector<vector<int>> res; 5 void helper(vector<int>& nums, int start, vector<int>& out) 6 { 7 res.push_back(out); 8 for (int i = start; i < nums.size(); ++i) 9 { 10 out.push_back(nums[i]); 11 helper(nums, i + 1, out); 12 out.pop_back(); 13 } 14 } 15 public: 16 vector<vector<int>> subsetsWithDup(vector<int>& nums) 17 { 18 vector<int> out; 19 sort(nums.begin(),nums.end());//排序 20 helper(nums,0,out); 21 //去重 22 sort(res.begin(),res.end()); 23 auto it = unique(res.begin(),res.end()); 24 res.erase(it,res.end()); 25 26 return res; 27 } 28 };
原文:https://www.cnblogs.com/yuhong1103/p/12609207.html