90. Subsets II

https://leetcode.com/problems/subsets-ii/description/

class Solution {
public:
    vector<vector<int>> subsetsWithDup(vector<int>& nums) {
        vector<vector<int>> res;
        res.push_back(vector<int>());
        sort(nums.begin(), nums.end());
        for (int j = 0, pre_sz; j < nums.size(); j++) {
            int n = nums[j];
            int sz = res.size();
            int start = (j > 0 && nums[j] == nums[j-1]) ? pre_sz : 0;
            pre_sz = sz;
            for (int i = start; i < sz; i++) {
                vector<int> v = res[i];
                v.push_back(n);
                res.push_back(v);
            }
        }
        return res;
    }
};
原文地址:https://www.cnblogs.com/JTechRoad/p/9062410.html