class Solution {
public:
vector<vector<int> > ret;
vector<int> sln;
void DFS(int n, int k, int m) {
if (k == 0) {
ret.push_back(sln);
return;
}
if (m > n) return;
DFS(n, k, m + 1);
sln.push_back(m);
DFS(n, k - 1, m + 1);
sln.pop_back();
}
vector<vector<int> > combine(int n, int k) {
// Start typing your C/C++ solution below
// DO NOT write int main() function
ret.clear();
DFS(n, k, 1);
return ret;
}
};
Small Case: 4ms
Large Case: 52ms