子集
题目链接:https://leetcode-cn.com/problems/subsets/
思路:求幂集的思想就是对数组中的每一个元素都做出包含/不包含的选择,从第一个一直选到最后一个,每确定一个子集后就回溯到上一层。
参考代码:
class Solution {private:vector<int> subRes;public:vector<vector<int>> subsets(vector<int>& nums) {vector<vector<int>> res;if (nums.size() == 0) {return res;}recursiveSubsets(nums, res, 0);return res;}void recursiveSubsets(vector<int>& nums, vector<vector<int>>& res, int i) {if (i == nums.size() - 1) {res.push_back(subRes);subRes.push_back(nums[i]);res.push_back(subRes);subRes.pop_back();return;}recursiveSubsets(nums, res, i + 1);subRes.push_back(nums[i]);recursiveSubsets(nums, res, i + 1);subRes.pop_back();}};
