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