leetcode 77:组合

前面已经做过很多此组合的题了,所以这个也就比较简单,需要注意的是要避免重复,比如[1,2] [2,1]是重复的

void com(std::vector<std::vector<int>>&a,std::vector<int> v,int n,int k,int st){
    if(v.size()==k)
        a.push_back(v);

    for(int i=st;i<=n;i++){
        v.push_back(i);
        com(a,v,n,k,i+1);
        v.pop_back();
    }
}

std::vector<std::vector<int>> combine(int n, int k) {
    std::vector<std::vector<int>> a;
    std::vector<int> v;
    int i=1;
    com(a,v,n,k,i);
    return a;
}

猜你喜欢

转载自blog.csdn.net/u013263891/article/details/84929222