您的位置:首页 > 其它

leetcode

2017-10-14 20:11 95 查看

Question78–Subsets

给定一个整数集,集合中元素各不相同,求出所有子集。

算法

n个整数的子集N等于下面两部分:

前n-1个整数的子集Q

Q中的每个集合中再加入第n个元素形成的集合

eg:{2,3}的子集:{},{2},{3},{2,3}

  {2,3,4}的子集:1. 第一部分({2,3}的子集): {},{2},{3},{2,3}

                  2. 第二部分:{4},{2,4},{3,4},{2,3,4}

code

vector<vector<int>> subsets(vector<int>& nums){
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]);
subset.push_back(a);
}
}

return subset;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  leetcode 子集 vector