集合的所有子集

    科技2025-02-07  34

    题目描述

    现在有一个没有重复元素的整数集合S,求S的所有子集 注意: 你给出的子集中的元素必须按升序排列 给出的解集中不能出现重复的元素 例如: 如果S=[1,2,3], 给出的解集应为:

    [

    [3],

    [1],

    [2],

    [1,2,3],

    [1,3],

    [2,3],

    [1,2],

    []

    ]

     

    class Solution { public: vector<vector<int>> res; vector<int> path; vector<vector<int> > subsets(vector<int> &S) { sort(S.begin(), S.end()); for(int i=0; i<=S.size();++i){ dfs(S, i, 0); } return res; } void dfs(vector<int>& s, int len, int index){ if(len == 0){ res.push_back(path); return; } for(int i=index; i<s.size(); ++i){ path.push_back(s[i]); dfs(s, len-1,i+1); path.pop_back(); } } };

     

    Processed: 0.011, SQL: 8