Combination Sum

来源:互联网 发布:注册淘宝网店铺多少钱 编辑:程序博客网 时间:2024/05/01 00:40
class Solution {public:    vector<vector<int> > combinationSum(vector<int> &candidates, int target) {        // Start typing your C/C++ solution below        // DO NOT write int main() function        vector<int> vec;        vector<vector<int> > ret;        sort(candidates.begin(),candidates.end());        DFS(candidates,0,target,vec,ret);        return ret;            }    void DFS(vector<int> &num,int cur ,int sum,vector<int> &vec,vector<vector<int> > &ret){        for(int i=cur;i<num.size();++i){            //if(i>cur&&num[i]==num[i-1])continue;            if(sum>num[i]){                vec.push_back(num[i]);                DFS(num,i,sum-num[i],vec,ret);                //DFS(num,i+1,sum-num[i],vec,ret);                vec.pop_back();            }else if(sum==num[i]){                vec.push_back(num[i]);                ret.push_back(vec);                vec.pop_back();                return;            }else{                return;            }        }    }};

原创粉丝点击