题目:77. 组合
文章链接:代码随想录
视频链接:LeetCode:77.组合
题目链接:力扣题目链接
解法1:
class Solution {
public:
vector<vector<int>> result; //结果集合
vector<int> path; // 用来存放符合条件结果
void backtracking(int n, int k, int starIndex){
if(path.size() == k){ // 长度满足
result.push_back(path); // 加入到结果集中
return; // 返回
}
for(int i = starIndex; i<= n; i++){ //广度,数组中横向都遍历
path.push_back(i); // 处理节点
backtracking(n ,k , i+1); // 递归 starIndex增大,控制遍历长度
path.pop_back(); // 回溯,撤销处理的节点
}
}
vector<vector<int>> combine(int n, int k) {
result.clear();
path.clear();
backtracking(n, k , 1);
return result;
}
};