Combinations
C(n,k) 回溯
vector<vector<int> > combine(int n, int k) {
// Note: The Solution object is instantiated only once and is reused by each test case.
vector<vector<int>> res;
vector<int> path;
construct(1,n,k,path,res);
return res;
}
bool construct(int pos,int n,int k,vector<int>& path,vector<vector<int>>& res)
{
if(k==0)
{
res.push_back(path);
return true;
}
if(n-pos+1<k)
return false;
for(int i=pos;i<=n;i++)
{
path.push_back(i);
construct(i+1,n,k-1,path,res);
path.pop_back();
}
return true;
}
浙公网安备 33010602011771号