LeetCode#78子集
题目链接
一道基础的回溯题(这几天怎么都是回溯)与全排列问题类似,区别是需要在每一次遍历的时候分别保存结果,而不是当找到nums.size()的时候再保存结果
附代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| class Solution { public: void dfs(vector<int>& nums,vector<vector<int>>& ans,vector<int> &temp,int pos) { if(pos == nums.size()) return; for(int i = pos ; i < nums.size() ; i++) { temp.push_back(nums[i]); ans.push_back(temp); dfs(nums,ans,temp,i+1); temp.pop_back(); } } vector<vector<int>> subsets(vector<int>& nums) { vector<vector<int>>ans; vector<int>temp; ans.push_back(temp); dfs(nums,ans,temp,0); return ans; } };
|