题解 | #集合的所有子集(一)#
集合的所有子集(一)
https://www.nowcoder.com/practice/c333d551eb6243e0b4d92e37a06fbfc9
#include <vector> class Solution { public: /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param S int整型vector * @return int整型vector<vector<>> */ vector<int>path; vector<vector<int>>result; vector<vector<int> > subsets(vector<int>& S) { // write code here if (S.size()==0) { return result; } for (int i=0; i<=S.size(); i++) { TrackBacking(S, i, 0); } return result; } //输入S及要求的组合元素个数n,输出其所有组合 void TrackBacking(vector<int>& S, int n, int start_index){ if (path.size()==n) { result.push_back(path); return; } for (int i=start_index; i<S.size(); i++) { path.push_back(S[i]); TrackBacking(S, n, i+1); path.pop_back(); } } };