Given a set of distinct integers, nums, return all possible subsets (the power set).
Note: The solution set must not contain duplicate subsets.
Example:
Input: nums = [1,2,3] Output: [ [3], [1], [2], [1,2,3], [1,3], [2,3], [1,2], [] ]
class Solution {
public:
vector<vector<int>> subsets(vector<int>& nums) {
vector<vector<int>> vec_subsets;
list<vector<int>> list_subsets;
vector<int> subset;
list_subsets.push_back(subset);
int len = nums.size();
if(len > 0){
for(int i = 0; i < len ; i++){
for (auto it = list_subsets.begin(); it != list_subsets.end(); it++){
subset = *it;
subset.push_back(nums[i]);
list_subsets.insert(it, subset);
subset.clear();
}
}
}
vec_subsets.resize(list_subsets.size());
copy(list_subsets.begin(), list_subsets.end(), vec_subsets.begin());
return vec_subsets;
}
};