leetcodeOJ 90. Subsets II

来源:互联网 发布:女程序员标准装扮 编辑:程序博客网 时间:2024/06/07 23:20

Given a collection of integers that might contain duplicates, nums, return all possible subsets.

Note: The solution set must not contain duplicate subsets.

For example,
If nums = [1,2,2], a solution is:

[  [2],  [1],  [1,2,2],  [2,2],  [1,2],  []]
代码如下:

class Solution {public:    vector<vector<int>> subsetsWithDup(vector<int>& nums) {        vector<vector<int>> ans;        int n = nums.size();        if(n == 0)            return ans;        vector<int> re;        sort(nums.begin(), nums.end());        genSet(ans, nums, re, n, 0);        return ans;    }    private:    void genSet(vector<vector<int>>& ans, vector<int>& nums, vector<int>& re, int n, int m){        ans.push_back(re);                for(int i = m; i < n; ++i){            if(i == m || nums[i] != nums[i-1]){                re.push_back(nums[i]);                genSet(ans, nums, re, n, i+1);                re.pop_back();            }        }    }};



0 0
原创粉丝点击