LeetCode-Combination Sum-组合加和-回溯
https://oj.leetcode.com/problems/combination-sum/
比较节省空间的方法是DFS回溯。犯了个小错忘记先排序。
class Solution { public: int n,m; vector<int> ca; vector<vector<int> > tot; vector<int> cur; void Solve(int p,int t){ if (t==0){ tot.push_back(cur); return; } if (p==n) return; if (ca[p]<=t){ cur.push_back(ca[p]); Solve(p,t-ca[p]); cur.pop_back(); } Solve(p+1,t); } vector<vector<int> > combinationSum(vector<int> &candidates, int target) { ca=candidates; n=ca.size(); sort(ca.begin(),ca.end()); Solve(0,target); return tot; } };