Combinations(带for循环的DFS)
Given two integers n and k, return all possible combinations of k numbers out of 1 ... n.
For example,
If n = 4 and k = 2, a solution is:
[ [2,4], [3,4], [2,3], [1,2], [1,3], [1,4], ]
class Solution { private: vector<vector<int>> res; int myn; int num; public: void tra(int loc,int start,vector<int> temp){ if(loc==num+1) { res.push_back(temp); return; } for (int i=start;i<=myn;++i) { temp.push_back(i); tra(loc+1,i+1,temp);//不是start+1,而是i+1 temp.erase(temp.end()-1); } } vector<vector<int>> combine(int n, int k) { myn=n; num=k; vector<int> temp; tra(1,1,temp); return res; } };
注释处是i+1,原因在于