给定两个整数n和k,返回1 ... n中k个数的所有可能组合。

本题源自leetcode

-------------------------------------------------

思路回溯法

 vector > combine(int n, int k) {
        vector> result;
        if(n<1||k<0||k>n)
            return result;
        vector path;
        findNum(result,path,n,k,1);
        return result;
    }
    void findNum(vector>& result,vector& path,int n,int k,int start){
        if(path.size()==k){
            result.push_back(path);
         //   path.clear();
        }
        for(int i=start;i<=n;i++){
            path.push_back(i);
            findNum(result,path,n,k,i+1);
            path.pop_back();
        }
    }


你可能感兴趣的:(leetcode,C++,算法)