Subsets

来源:互联网 发布:和淘宝类似的购物网站 编辑:程序博客网 时间:2024/06/06 08:23
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;    }};



0 0