77. 组合

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

你可以按 任何顺序 返回答案。

class Solution {
private:
    void traversal(int lhs, int rhs, int k)
    {
        if (k == 0) {
            res.emplace_back(vec);
            return;
        }
        for (int i = lhs; i <= rhs; i++) {
            if (rhs - lhs + 1 < k) return;
            vec.emplace_back(i);
            traversal(i + 1, rhs, k - 1);
            vec.pop_back();
        }
    }
public:
    vector<int> vec;
    vector<vector<int>> res;
    vector<vector<int>> combine(int n, int k) {
        traversal(1, n, k);
        return res;
    }
};
posted @ 2023-04-13 15:38  xiazichengxi  阅读(25)  评论(0)    收藏  举报