vector<vector<int>> subsetsWithDup(vector<int>& nums) { sort(nums.begin(), nums.end()); vector<vector<int>> res = { {} }; for (int i = 0; i < nums.size(); i++) { int k = res.size(); while (k--) { res.push_back(res[k]); res[k].push_back(nums[i]); } } sort(res.begin(), res.end());