题目:
给定一组不含重复元素的整数数组 nums,返回该数组所有可能的子集(幂集)。
说明:解集不能包含重复的子集。
示例:
输入: nums = [1,2,3]
输出:
[
[3],
[1],
[2],
[1,2,3],
[1,3],
[2,3],
[1,2],
[]
]
分析:
[1,2]的所有子集其实就是[1]的所有子集+[1]的每个子集并上2组成的集合+[2]这个单数字集合。
Tips:别忘了空集。
代码:
class Solution {
public:
vector<vector<int>> subsets(vector<int>& nums) {
vector<vector<int>> result;
for(vector<int>::iterator it=nums.begin();it!=nums.end();it++){//遍历每一个字母
vector<int> temp;
if(it!=nums.begin()){
int k=result.size();
for(int i=0;i<k;i++){
vector<int> *temp1=new vector<int>(result[i]);
(*temp1).push_back(*it);
result.push_back(*temp1);
delete(temp1);
}
}
temp.push_back(*it);
result.push_back(temp);
}
vector<int> *temp2=new vector<int>;
result.push_back(*temp2);
return result;
}
};
有用记得给个赞呀!!!!!!!!!!!!!!!!!!!!!!
有用记得给个赞呀!!!!!!!!!!!!!!!!!!!!!!
有用记得给个赞呀!!!!!!!!!!!!!!!!!!!!!!
重要的事情说三遍。