給定兩個整數 n 和 k,返回 1 ... n 中所有可能的 k 個數的組合。
?
class?Solution?{
private:
????vector<vector<int>>?result;?//?存放符合條件結果的集合
????vector<int>?path;?//?用來存放符合條件結果
????void?backtracking(int?n,?int?k
,?int?startIndex)?
? {
????????if?(path.size()?==?k)?{
????????????result.push_back(path);
????????????return;
????????}
????????for?(int?i?=?startIndex;?i?<=?n;?i++)?
? ? ? ?{
????????????path.push_back(i);?//?處理節點?
????????????backtracking(n,?k,?i?+?1);?//?遞歸
????????????path.pop_back();?//?回溯,撤銷處理的節點
????????}
????}
public:
????vector<vector<int>>?combine(int?n,?int?k)?{
????????result.clear();?//?可以不寫
????????path.clear();???//?可以不寫
????????backtracking(n,?k,?1);
????????return?result;
????}
};
?