深搜:
class Solution
{
public:
vector<vector<int> > combine(int n,int k)
{
vector<vector<int> > result;
vector<int> path;
dfs(n,k,result,path,1,0);
return result;
}
void dfs(int n,int k,vector<vector<int> > &result,vector<int> &path,int start,int step)
{
if(step==k)
{
result.push_back(path);
return;
}
for(int i=start;i<=n-k+1+step;++i)
{
path.push_back(i);
dfs(n,k,result,path,i+1,step+1);
path.pop_back();
}
}
};