Given a set of distinct integers, nums, return all possible subsets (the power set).
Note: The solution set must not contain duplicate subsets.
For example,
If nums = [1,2,3]
, a solution is:
[ [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>> res;
vector<int> ans;
subs(nums,res,ans,0);
vector<int> space;
res.push_back(space);
return res;
}
void subs(vector<int>& nums,vector<vector<int>>& res,vector<int>& ans,int start){
for(int i=start;i<nums.size();i++){
ans.push_back(nums[i]);
res.push_back(ans);
subs(nums,res,ans,i+1);
ans.pop_back();
}
}
};