CCCPaste

Untitled

vector> subsets(vector& nums) {
    int n = (int) nums.size();
    vector> subsets;
    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]);
            }
        }
        subsets.push_back(subset);
    }
    
    return subsets;
}