Combination Sum 选数相加成一个大数 深搜
发布时间:2020-12-14 03:03:45 所属栏目:大数据 来源:网络整理
导读:题目: 点击打开链接 解答: 深搜,记得最后的结果要排序。 代码: class Solution { public: vectorvectorint combinationSum(vectorint candidates,int target) { vectorint temp; vectorvectorint res; if (candidates.size() == 0) return res; search(t
题目: 点击打开链接 解答: 深搜,记得最后的结果要排序。 代码: class Solution { public: vector<vector<int> > combinationSum(vector<int> &candidates,int target) { vector<int> temp; vector<vector<int> > res; if (candidates.size() == 0) return res; search(target,res,temp,candidates); for (int i = 0; i < res.size(); i++) { sort(res[i].begin(),res[i].end()); } return res; } private: void search(int sum,vector<vector<int> > &res,vector<int> &temp,int pos,vector<int> &candidates) { if (sum == 0) { res.push_back(temp); return; } if (sum < 0) { return; } for (int i = pos; i < candidates.size(); i++) { sum -= candidates[i]; temp.push_back(candidates[i]); search(sum,i,candidates); sum += candidates[i]; temp.pop_back(); } } }; (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |