程式語言 - LeetCode - C++ - 216. Combination Sum III



參考資訊:
https://www.cnblogs.com/grandyang/p/4537983.html

題目:


解答:

class Solution {
public:
    vector<vector<int>> combinationSum3(int k, int n) {
        vector<int> t;
        vector<vector<int>> r;

        dfs(k, n, 1, t, r);
        return r;
    }

    int dfs(int k, int n, int pos, vector<int>& t, vector<vector<int>>& r) {
        if (n < 0) {
            return 0;
        }

        if ((n == 0) && (t.size() == k)) {
            r.push_back(t);
        }

        for (int i = pos; i <= 9; i++) {
            t.push_back(i);
            dfs(k, n - i, i + 1, t, r);
            t.pop_back();
        }

        return 0;
    }
};