#include using std::vector; class Solution { public: void dfs(const vector &nums, int index, int size, vector ¤t, vector> &result) { if (index == size) { result.push_back(current); return; } dfs(nums, index + 1, size, current, result); current.push_back(nums[index]); dfs(nums, index + 1, size, current, result); current.pop_back(); } vector> subsets(vector &nums) { vector current; vector> result; dfs(nums, 0 , nums.size(), current, result); return result; } };