Combination Sum III

来源:互联网 发布:吴达洙 知乎 编辑:程序博客网 时间:2024/06/03 17:38
class Solution {public:    int sum(vector<int> t){        int cnt = 0;        for(int i=0;i<t.size();i++)          cnt+=t[i];        return cnt;    }        void dfs(int level,int target,vector<int>& a,int cnt){        int s = sum(a);        if(s==target&&a.size()==cnt){            result.push_back(a);            return;        }        if(s==target&&a.size()!=cnt||s>target)return;        else{            for(int i=level;i<num.size();i++){                a.push_back(num[i]);                dfs(i+1,target,a,cnt);                a.pop_back();            }                    }      }     vector<vector<int>> combinationSum3(int k, int n) {        vector<int> tmp;        for(int i=0;i<9;i++)            num.push_back(i+1);        dfs(0,n,tmp,k);        return result;        }private:   vector<int> num;   vector<vector<int>> result;    };

0 0
原创粉丝点击