LeetCode: Combination Sum
来源:互联网 发布:mysql显示表字段 编辑:程序博客网 时间:2024/06/07 10:24
思路:回溯搜索,先对数组排好序,然后从前往后搜索,记录当前已经累加的和当前已经加进来的元素。如果当前和已经等于目标值,加入到解中间去,如果大于目标值,回溯(因为已经排好序,不需要再搜索后面更大的元素),如果小,则加入当前元素(保证重复加入)。
code:
class Solution {public: void solveSum(vector<int> &A, int pos, int target, vector<int> curRet, int curSum, vector<vector<int> > &ret){ if(curSum == target){ ret.push_back(curRet); return; } else if(curSum > target) return; for(int i = pos;i < A.size();i++){ vector<int> temp = curRet; temp.push_back(A[i]); solveSum(A,i,target,temp,curSum+A[i],ret); } } vector<vector<int> > combinationSum(vector<int> &candidates, int target) { vector<vector<int> > ret; vector<int> curRet; sort(candidates.begin(),candidates.end()); solveSum(candidates,0,target,curRet,0,ret); return ret; }};
0 0
- [LeetCode] Combination Sum、Combination Sum II
- 【LeetCode】Combination Sum && Combination Sum II
- leetcode之Combination Sum && Combination Sum II
- leetcode Combination Sum &Combination Sum II
- leetcode-combination sum and combination sum II
- Leetcode:Combination Sum与Combination Sum II
- leetcode Combination Sum VS Combination Sum II
- [Leetcode]Combination Sum &&Combination Sum II
- LeetCode Combination Sum & Combination Sum II
- leetcode | Combination Sum & Combination Sum 2
- LeetCode: Combination Sum
- LeetCode: Combination Sum II
- LeetCode: Combination Sum
- LeetCode: Combination Sum II
- [LeetCode]Combination Sum
- [LeetCode]Combination Sum II
- LeetCode Combination Sum
- LeetCode Combination Sum II
- Android多媒体开发【8】-- AwesomePlayer基本框架及播放流程
- Fedora里rpm 和 yum的使用
- Uva-12661-Funny Car Racing
- 窗体初始化时隐藏
- 外包工作
- LeetCode: Combination Sum
- 局域网内Linux安装samba
- Android亮屏和熄屏控制
- 【Android】 AndroidManifest.xml文件全部属性详细解析
- 《C++编程规范 101条规则、准则与最佳实践》 人邮 -- 读书笔记
- keil 的 配置向导 configuration wizard
- 关闭某进程
- Android多媒体开发【9】-- OpenMax IL简介
- 【swift】swift学习之旅!