已知一组数(其中无重复元素),求这组数可以组成的所有子集。结果中不可有重复子集。
例如: nums[]=[1,2,3]
结果为:[[],[1],[1,2],[1,2,3],[1,3],[2],[2,3],[3]]
回溯法的实现代码如下:
#include<vector>
#include<stdio.h>
class Solution
{
public:
Solution() {
};
~Solution() {
};
std::vector<std::vector<int>> subsets(std::vector<int>& nums)
{
std::vector<int> item;
std::vector<std::vector<int>> result;
result.push_back(item);
generate(0, nums, item, result);
return result;
}
private:
void generate(unsigned int i, std::vector<int>& nums, std::vector<int>& item, std::vector<std::vector<int>>& result