78. Subsets

来源:互联网 发布:php语言精粹 编辑:程序博客网 时间:2024/05/21 09:04

Given a set of distinct integers, nums, return all possible subsets.

Note: The solution set must not contain duplicate subsets.

For example,
If nums = [1,2,3], a solution is:

[
[3],
[1],
[2],
[1,2,3],
[1,3],
[2,3],
[1,2],
[]
]

思路:这题其实是借鉴了上一题combinations(http://blog.csdn.net/sunflowerhh/article/details/52277803),只不过加了一个每个set长度的参数。

class Solution {public:    vector<vector<int>> subsets(vector<int>& nums) {         vector<vector<int>> result;         vector<int> sub;         result.push_back(sub);         for(int i = 1; i<=nums.size(); i++)         {             subset(nums,0,i,sub,result);         }         return result;    }    void subset(vector<int> nums, int start, int length, vector<int>&sub, vector<vector<int>>&result)     {         if(sub.size() == length)         {             result.push_back(sub);             return;         }         for(int i = start; i < nums.size(); i++)         {             sub.push_back(nums[i]);             subset(nums,i+1,length,sub,result);             sub.pop_back();         }     }};
0 0
原创粉丝点击