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;
    }
};

 

posted @ 2018-05-20 07:28  JTechRoad  阅读(73)  评论(0编辑  收藏  举报