Leetcode 77组合C++

思路:深度优先搜索DFS。像这种要求出所有结果的集合,一般都是用DFS调用递归来解。

class Solution {
public:
    vector> combine(int n, int k) {
        vector > ans;
        vector tmp;
        combineDFS(n,k,1,tmp,ans);
        return ans;
        
        
    }
    void combineDFS(int n,int k,int level,vector &tmp,vector > &ans)
    {
        if(tmp.size()==k) {ans.push_back(tmp);return ;}
        for(int i=level;i<=n;++i)
        {
            tmp.push_back(i);
            combineDFS(n,k,i+1,tmp,ans);
            tmp.pop_back();
        }
    }
};

你可能感兴趣的:(Leetcode 77组合C++)