Skip to content

Commit a6824ff

Browse files
committed
a simple code solution
1 parent 859e312 commit a6824ff

File tree

1 file changed

+29
-0
lines changed

1 file changed

+29
-0
lines changed

src/subsets/subsets.cpp

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -166,3 +166,32 @@ int main(int argc, char** argv)
166166
vector<vector<int> > r = subsets(v);
167167
printResult(r);
168168
}
169+
/***************************************************************
170+
class Solution {
171+
public:
172+
vector<vector<int> > subsets(vector<int> &S) {
173+
result.clear();
174+
sort(S.begin(), S.end());
175+
result.push_back(vector<int>());
176+
int len = S.size();
177+
for (int i = 1; i <= len; ++i) {
178+
combination(S, len, 0, a, i, 0);
179+
}
180+
return result;
181+
}
182+
void combination(vector<int> &vec, int len, int start, int a[], int sublen, int cur) {
183+
if (sublen == cur) {
184+
vector<int> tmp(a, a + sublen);
185+
result.push_back(tmp);
186+
return;
187+
}
188+
for (int i = start; i < len - sublen + 1 + cur; ++i) {
189+
a[cur] = vec[i];
190+
combination(vec, len, i + 1, a, sublen, cur + 1);
191+
}
192+
}
193+
private:
194+
vector< vector<int> > result;
195+
int a[100];
196+
};
197+
********************************************************************/

0 commit comments

Comments
 (0)