Day131 | 灵神 | 回溯算法 | 子集型 子集
78.子集
78. 子集 - 力扣(LeetCode)
思路:
笔者写过很多次这道题了,不想写题解了,大家看灵神讲解吧
回溯算法套路①子集型回溯【基础算法精讲 14】_哔哩哔哩_bilibili
完整代码:
选或不选

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
| 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; } };
|
枚举选哪个

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| 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; } };
|