问题:
解答:
典型的深搜解决。
代码:
class Solution {
public:
vector<vector<int> > subsets(vector<int> &S) {
vector<vector<int> > res;
vector<int> temp;
int n = S.size();
if (n == 0)
return res;
sort(S.begin(), S.end());
search(0, n, res, temp, S);
return res;
}
void search(int k, int n, vector<vector<int> > &res, vector<int> &temp, vector<int> &S)
{
if (k == n)
{
res.push_back(temp);
return;
}
temp.push_back(S[k]);
search(k + 1, n, res, temp, S);
temp.pop_back();
search(k + 1, n, res, temp, S);
}
};