1. Leetcode 78. 找到所有子集
输入: 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> trace;
vector<vector<int>> res;
traceback(nums, 0, trace, res);
return res;
}
void traceback(vector<int> &nums, int pos, vector<int> &trace, vector<vector<int>> &res) {
res.push_back(trace); // 结果输出
for(int i=pos; i<nums.size(); i++) { // 可行域搜索
trace.push_back(nums[i]); // 路径记录
traceback(nums, i+1, trace, res); // 回溯
trace.pop_back(); // 路径撤销
}
}
};