您的位置:首页 > 其它

LeetCode 78: Subsets

2015-10-30 14:57 549 查看
Given a set of distinct integers, nums, return all possible subsets.

Note:

Elements in a subset must be in non-descending order.

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],
[]
]


解题思路

class Solution {
private:
void subsets(vector<int>& nums, int index, vector<int> path, vector<vector<int>> &result) {
if (index == nums.size()) {
result.push_back(path);
}
else {
subsets(nums, index + 1, path, result);

path.push_back(nums[index]);
subsets(nums, index + 1, path, result);
}
}

public:
vector<vector<int>> subsets(vector<int>& nums) {
sort(nums.begin(), nums.end());

vector<vector<int>> result;
subsets(nums, 0, vector<int>(), result);

return result;
}
};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  leetcode