难度:中等。
标签:回溯算法。
正确解法:
class Solution {
vector<vector<int>> result;
void backtrace(vector<int> vec, int begin, int n, int k){
if(vec.size() == k){
result.emplace_back(vec);
return;
}
for(int i = begin; i <= n - k + vec.size() + 1; i++){
vec.emplace_back(i);
backtrace(vec, i + 1, n, k);
vec.pop_back();
}
}
public:
vector<vector<int>> combine(int n, int k) {
vector<int> vec;
backtrace(vec, 1, n, k);
return result;
}
};
结果: