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; } } }};