力扣77-组合

组合问题

题目链接

class Solution {
private:
    vector> ans;//保存结果
    vector path;//保存符合条件的结果
    void dfs(int n,int k,int startindex){
        if(path.size() == k){
            ans.push_back(path);//表明找到了符合条件的结果,将其保存到ans中
            return;
        }
        for(int i = startindex;i<=n;i++){//横向遍历集合中的节点
            path.push_back(i);//将当前节点添加到符合条件的结果中
            dfs(n,k,i+1);
            path.pop_back();//回溯
        }   
    }
public:
    vector> combine(int n, int k) {
        dfs(n,k,1);
        return ans;
    }
};

你可能感兴趣的:(算法-每日一练,leetcode,算法,深度优先)