LeetCode78. Subsets

来源:互联网 发布:技术支持 恒久软件 编辑:程序博客网 时间:2024/06/10 09:05

题目链接:

https://leetcode.com/problems/subsets/

题目描述:

给一个数组,把它当做一个集合,求这个集合的所有子集。子集元素降序排列。

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

思路:

QAQ第一次做把这道题当成全排列的那种了,真的是蠢死了。
比如数组是[1,2,3],
全排列是123选了,会有132啊…..
这个只要1,2,3三个数字都有了就行了。

先排序,再回溯解决。

代码:

lass Solution {public:    vector<vector<int>> res;    int len;    void subsets(vector<int>& subset, vector<int>& nums, int n){        res.push_back(subset);        for (int i = n; i<len; i++){            subset.push_back(nums[i]);            subsets(subset, nums ,i+ 1);            subset.pop_back();        }    }    vector<vector<int>> subsets(vector<int>& nums) {        len = nums.size();        if (len == 0){            return res;        }        sort(nums.begin(),nums.end());         vector<int> subset;        subsets(subset, nums,0);        return res;    }};
0 0
原创粉丝点击