1. 程式人生 > >leetcode 77:組合

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;
}