题目:
解答:
搜索,从前往后。
代码:
class Solution {
public:
vector<vector<int> > combine(int n, int k) {
vector<vector<int> > res;
vector<int> temp;
if (n < 1 || n < k || k < 1)
return res;
for (int i = 1; i <= n; i++)
{
temp.push_back(i);
search(n, k, i, temp, res);
temp.pop_back();
}
return res;
}
void search(int n, int k, int last, vector<int> &temp, vector< vector<int>> &res)
{
if (temp.size() == k)
{
res.push_back(temp);
return;
}
for (int i = last + 1; i <= n; i++)
{
temp.push_back(i);
search(n, k, i, temp, res);
temp.pop_back();
}
}
};