给定一组不含重复元素的整数数组 nums,返回该数组所有可能的子集(幂集)。
说明:解集不能包含重复的子集。
示例:
输入: nums = [1,2,3] 输出: [ [3], [1], [2], [1,2,3], [1,3], [2,3], [1,2], [] ]
class Solution {
public:
vector<vector<int>> subsets(vector<int>& nums) {
vector<int> item;
vector<vector<int> > result;
result.push_back(item);
generate(0,nums,item,result);
return result;
}
private:
void generate(int i , vector<int> &nums , vector<int> &item , vector<vector<int> > &result){
if(i>=nums.size())
return;
item.push_back(nums[i]);
result.push_back(item);
generate(i+1,nums,item,result);
item.pop_back();
generate(i+1,nums,item,result);
}
};