1. 程式人生 > >[leetcode] Combination Sum III

[leetcode] Combination Sum III

簡單題,和前面兩個類似。程式碼如下:

class Solution {
public:
    vector<vector<int>> combinationSum3(int k, int n) {
        vector<vector<int> > result;
        vector<int> num;
        dfs(k, n, result, num, 1);
        return result;
    }
private:
    void dfs(int k, int n, vector<vector<int> > &result, vector<int> &num, int cur){
        if(n == 0 && k == 0){
            result.push_back(num);
            return;
        }
        if(k == 0 || cur > 9 || n < cur)
            return;
        num.push_back(cur);
        dfs(k - 1, n - cur, result, num, cur + 1);
        num.pop_back();
        dfs(k, n, result, num, cur + 1);
    }
};