LeetCode 90. Subsets II

来源:互联网 发布:淘宝购物优惠微信群 编辑:程序博客网 时间:2024/05/16 03:54

Given a collection of integers that might contain duplicates, nums, return all possible subsets.

Note: The solution set must not contain duplicate subsets.

For example,
If nums = [1,2,2], a solution is:

[  [2],  [1],  [1,2,2],  [2,2],  [1,2],  []]

这道题增加了可以重复元素,因此可以用集合实现,再对集合进行遍历存储到向量中返回

class Solution {public:    vector<vector<int>> subsetsWithDup(vector<int>& nums) {        sort(nums.begin(),nums.end());        int n=nums.size();                vector<vector<int>>v;        if(n==0) return v;        set<vector<int>>s;                for(int i=0;i<(1<<n);i++){            vector<int>r;            for(int j=0;j<n;j++){                if(i&(1<<j)) r.push_back(nums[j]);            }            s.insert(r);        }        for(auto it=s.begin();it!=s.end();it++)            v.push_back(*it);        return v;    }};

原创粉丝点击