77. Combinations

来源:互联网 发布:软件项目售后服务计划 编辑:程序博客网 时间:2024/06/07 07:41

dp...这个题目基本操作

class Solution {private:    int n;public:    vector<vector<int>> combine(int n, int k) {        //vector<int> v = {1, 2, 3};        this->n = n;        return comb(1, k);    }    vector<vector<int>> comb(int i, int k){        vector<vector<int>> res;        if (k == 0 || (n - i + 1) < k){            return res;        }        if (k == 1){            for(int j = i; j <= n; j++)                res.push_back(vector<int>(1, j));            return res;        }        if (n - i + 1 == k){            vector<int> v;            for(int j = i; j <= n; j++)                v.push_back(j);            res.push_back(v);            return res;        }        auto v1 = comb(i + 1, k);        auto v2 = comb(i + 1, k - 1);        for(auto &vec : v2){            vec.push_back(i);            v1.push_back(vec);        }        return v1;    }};