您的位置:首页 > 其它

Subsets

2016-05-19 14:39 218 查看
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],

[]
]

思路:

(1)首先放入[] 到结果的vector<vector<int>>res的数组中,这个时候res的size为1

(2)将res中的集合中的vector<int>元素取出来,向其中添加nums数组中的元素而后再将结果添加到res中,这个时候res的size为2,这其中就有两个元素了,一个是[],一个是[nums[0]]

(3)以此类推即可

class Solution {
public:
vector<vector<int>> subsets(vector<int>& nums) {
vector<vector<int>>res;
vector<int>slo;
if(nums.empty())
return res;
sort(nums.begin(),nums.end());
res.push_back(slo);
for(int i=0;i<nums.size();i++)
{
int n=res.size();
for(int j=0;j<n;j++)
{
slo=res[j];
slo.push_back(nums[i]);
res.push_back(slo);
}
}
return res;
}
};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: