90. 子集 II

 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             if(i != start && nums[i] == nums[i - 1]) continue;//去重
11 
12             out.push_back(nums[i]);
13             helper(nums, i + 1, out);
14             out.pop_back();
15         }
16     }
17 public:
18     vector<vector<int>> subsetsWithDup(vector<int>& nums) 
19     {
20         vector<int> out;
21         sort(nums.begin(),nums.end());//排序
22         helper(nums,0,out);
23         //去重
24         // sort(res.begin(),res.end());
25         // auto it = unique(res.begin(),res.end());
26         // res.erase(it,res.end());
27 
28         return res;
29     }
30 };

 

posted @ 2020-03-31 22:35  Jinxiaobo0509  阅读(83)  评论(0)    收藏  举报