https://leetcode-cn.com/problems/combinations/solution/77-zu-he-hui-su-fa-jing-dian-ti-mu-by-carlsun-2/
vector<vector<int>> result; // 存放符合条件结果的集合
vector<int> path; // 用来存放符合条件结果
vector<vector<int>> result; // 存放符合条件结果的集合
vector<int> path; // 用来存放符合条件单一结果
void backtracking(int n, int k, int startIndex)
if (path.size() == k) {
result.push_back(path);
return;
}
class Solution {
private:
vector<vector<int>> result; // 存放符合条件结果的集合
vector<int> path; // 用来存放符合条件结果
void backtracking(int n, int k, int startIndex) {
if (path.size() == k) {
result.push_back(path);
return;
}
for (int i = startIndex; i <= n; i++) {
path.push_back(i); // 处理节点
backtracking(n, k, i + 1); // 递归
path.pop_back(); // 回溯,撤销处理的节点
}
}
public:
vector<vector<int>> combine(int n, int k) {
result.clear(); // 可以不写
path.clear(); // 可以不写
backtracking(n, k, 1);
return result;
}
};
作者:carlsun-2
链接:https://leetcode-cn.com/problems/combinations/solution/77-zu-he-hui-su-fa-jing-dian-ti-mu-by-carlsun-2/
来源:力扣(LeetCode)
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
自己写的
class Solution {
private:
vector<vector<int>> res;
vector<int> path;
public:
void dfs(vector<int> &nums,int n,int k){
if(path.size()==k){
res.push_back(path);
return ;
}
for(int i=n;i<nums.size();i++){
path.push_back(nums[i]);//这个i老写错
dfs(nums,i+1,k);
path.pop_back();
}
}
vector<vector<int>> combine(int n, int k) {
vector<int> nums;
for(int i=1;i<=n;i++){
nums.push_back(i);
}
dfs(nums,0,k);
return res;
}
};