递归,深搜回溯
class Solution {
public:
vector<vector<int>> ans;
vector<int> tmp;
void dfs(int cnt,int n){
if(!cnt) {ans.push_back(tmp);return;}
for(int i=tmp.back()+1;i+cnt-1<=n;++i)
tmp.push_back(i),dfs(cnt-1,n),tmp.pop_back();
}
vector<vector<int>> combine(int n, int k) {
for(int i=1;i+k-1<=n;++i)
tmp.push_back(i),dfs(k-1,n),tmp.pop_back();
return ans;
}
};