Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- 模板1, dfs 不带循环
- class Solution {
- public:
- /**
- * @param nums: A set of numbers
- * @return: A list of lists
- */
- vector<vector<int>> subsets(vector<int> &nums) {
- vector<vector<int>> ans;
- vector<int> path;
- sort(nums.begin(), nums.end());
- dfs(ans, path, 0, nums);
- return ans;
- }
- void dfs(vector<vector<int>>& ans, vector<int>& path, int index, vector<int>& nums) {
- if (index == nums.size()) {
- ans.push_back(path);
- return;
- }
- path.push_back(nums[index]);
- dfs(ans, path, index+1, nums);
- path.pop_back();
- dfs(ans, path, index+1, nums);
- }
- };
- 模板2, dfs 带循环
- class Solution {
- public:
- /**
- * @param nums: A set of numbers
- * @return: A list of lists
- */
- vector<vector<int>> subsets(vector<int> &nums) {
- vector<vector<int>> ans;
- vector<int> path;
- sort(nums.begin(), nums.end());
- dfs(ans, path, 0, nums);
- return ans;
- }
- void dfs(vector<vector<int>>& ans, vector<int>& path, int index, vector<int>& nums) {
- ans.push_back(path);
- for (int i = index; i < nums.size(); ++i) {
- path.push_back(nums[i]);
- dfs(ans, path, i+1, nums);
- path.pop_back();
- }
- }
- };
Advertisement
Add Comment
Please, Sign In to add comment