题目:
给定两个整数 n 和 k,返回 1 … n 中所有可能的 k 个数的组合。

函数代码:
class Solution {
public:
vector<vector<int>>res;
vector<vector<int>> combine(int n, int k)
{
if (k <= 0 || n <= 0) return res;
vector<int> track;
backtrack(n, k, 1, track);
return res;
}
void backtrack(int n, int k, int start, vector<int>& track)
{
// 到达树的底部
if (k == track.size())
{
res.push_back(track);
return;
}
// 注意 i 从 start 开始递增
for (int i = start; i <= n; i++)
{
// 做选择
track.push_back(i);
backtrack(n, k, i + 1, track);
// 撤销选择
track.pop_back();
}
}
};
588

被折叠的 条评论
为什么被折叠?



