CCCPaste

Untitled

class Solution {
public:
   vector> subsetsWithDup(vector& nums) {
    int n = (int) nums.size();
    vector> subsets;
    set> st;
    for(int bitmask = 0; bitmask < (1 << n); bitmask++) {
        vector subset;
        for(int bit = 0; bit < n; bit++) {
            if(bitmask & (1 << bit)) {
                subset.push_back(nums[bit]);
            }
        }
        sort(subset.begin(), subset.end());
        st.insert(subset);
    }
    for(vector v : st) {
        subsets.push_back(v);
    }
    return subsets;
}
};