题解 | 集合的子集
集合的子集
https://www.nowcoder.com/practice/1f2700e2b1904254b55765479e9b8766
#include <algorithm> #include <vector> class Subset { void dfs(const vector<int> &A, int index, vector<int> &cur, vector<vector<int>> &res){ if (!cur.empty()) { res.emplace_back(cur); } for(int i=index;i<A.size();++i){ cur.emplace_back(A[i]); dfs(A, i+1, cur, res); cur.pop_back(); } } public: vector<vector<int> > getSubsets(vector<int> A, int n) { // write code here if(n==1) return vector<vector<int>>{A}; sort(A.rbegin(), A.rend()); int count =1; vector<vector<int>> res; vector<int> cur; dfs(A, 0, cur, res); sort(res.rbegin(), res.rend()); return res; } };