程式語言 - LeetCode - C++ - 77. Combinations



題目:


解答:

class Solution {
public:
    vector<vector<int>> combine(int n, int k) {
        vector<int> q;
        vector<vector<int>> ans;

        auto dfs = [&](this auto&& dfs, int start) -> void {
            if (q.size() >= k) {
                ans.push_back(q);
                return;
            }

            for (int i = start; i <= n; ++i) {
                q.push_back(i);
                dfs(i + 1);
                q.pop_back();
            }
        };

        dfs(1);
        return ans;
    }
};