您的位置:首页 > 其它

LeetCode 90. Subsets II

2017-09-18 22:07 330 查看
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) {
sort(nums.begin(),nums.end());
int n=nums.size();

vector<vector<int>>v;
if(n==0) return v;
set<vector<int>>s;

for(int i=0;i<(1<<n);i++){
vector<int>r;
for(int j=0;j<n;j++){
if(i&(1<<j)) r.push_back(nums[j]);
}
s.insert(r);
}
for(auto it=s.begin();it!=s.end();it++)
v.push_back(*it);
return v;
}
};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: