Combinations
原题链接Combinations
给定两个整数n和k,返回1,2,…,n这n个元素所有的组合,每个组合包含k的元素,且元素大小递增
深度优先遍历一遍解决战斗:)
class Solution {
public:
vector<vector<int>> combine(int n, int k) {
vector<vector<int>> res;
vector<int> cur;
dfs(1, n, k, cur, res);
return res;
}
private:
void dfs(int i, int n, int k, vector<int>& cur, vector<vector<int>>& res)
{
if(k == 0)
{
res.emplace_back(cur);
return;
}
if(i > n)
return;
for(int j = i; j <= n; ++j)
{
cur.emplace_back(j);
dfs(j + 1, n, k - 1, cur, res);
cur.pop_back();
}
}
};