Day131 | 灵神 | 回溯算法 | 子集型 子集
78.子集
78. 子集 - 力扣(LeetCode)
思路:
笔者写过很多次这道题了,不想写题解了,大家看灵神讲解吧
回溯算法套路①子集型回溯【基础算法精讲 14】_哔哩哔哩_bilibili
完整代码:
选或不选
class Solution {
public:
vector<vector<int>> res;
vector<int> path;
void backtracking(vector<int>& nums,int index)
{
if(index==nums.size())
{
res.push_back(path);
return;
}
//不选
backtracking(nums,index+1);
//选
path.push_back(nums[index]);
backtracking(nums,index+1);
path.pop_back();
}
vector<vector<int>> subsets(vector<int>& nums) {
backtracking(nums,0);
return res;
}
};
枚举选哪个
class Solution {
public:
vector<vector<int>> res;
vector<int> path;
void backtracking(vector<int>& nums,int index)
{
res.push_back(path);
for(int i=index;i<nums.size();i++)
{
path.push_back(nums[i]);
backtracking(nums,i+1);
path.pop_back();
}
}
vector<vector<int>> subsets(vector<int>& nums) {
backtracking(nums,0);
return res;
}
};