leetcode

来源:互联网 发布:ruby和python哪个强大 编辑:程序博客网 时间:2024/06/02 05:15

Question 90–Subsets II

给定一个整数集合,含有重复的元素,请给出所有的子集(不含重复集合)。

算法

先把原集合排序,然后像上篇博客中的Subsets中的算法一样。

Code

vector<vector<int>> subsetsWithDup(vector<int>& nums){    sort(nums.begin(),nums.end());    vector<vector<int>> subset;    vector<int> a;    subset.push_back(a);    if(nums.size()==0) return subset;    a.push_back(nums[0]);    subset.push_back(a);    for(int i=1; i<nums.size(); i++){        int size=subset.size();        for(int j=0; j<size; j++){            (a=subset[j]).push_back(nums[i]);            for(int iter=0; iter<subset.size(); iter++){                if(subset[iter]==a) break;                if(iter==size-1) subset.push_back(a);            }        }    }    return subset;}
原创粉丝点击