90.子集II

class Solution {
public:vector<vector<int>>res;vector<int>cur;vector<int>v;void bt(int start){res.push_back(cur);
    if(start==v.size())return;for(int i=start;i<v.size();i++){
        if(i>start&&v[i]==v[i-1])continue;
        cur.push_back(v[i]);bt(i+1);cur.pop_back();
    }
}
    vector<vector<int>> subsetsWithDup(vector<int>& nums) {
        sort(nums.begin(),nums.end());v=nums;bt(0);return res;
    }
};