leetcode——Combination Sum
来源:互联网 发布:上海二手住宅成交数据 编辑:程序博客网 时间:2024/05/22 04:46
题目:
Given a set of candidate numbers (C) and a target number (T), find all unique combinations inC where the candidate numbers sums to T.
The same repeated number may be chosen fromC unlimited number of times.
Note:
- All numbers (including target) will be positive integers.
- The solution set must not contain duplicate combinations.
For example, given candidate set [2, 3, 6, 7]
and target7
,
A solution set is:
[ [7], [2, 2, 3]]
解答:参考递归法求子集的方法 http://blog.csdn.net/zhaopengnju/article/details/51427484 稍加改变class Solution {public: void combine(vector<int>& candidates, int start, int sum, int target, vector<int>& tmp, vector<vector<int>>& result) { if (sum > target || start >= candidates.size()) { return; } if (sum == target) { result.push_back(tmp); return; } //不选当前元素 combine(candidates, start + 1, sum, target, tmp, result); //选择当前元素 tmp.push_back(candidates[start]); sum += candidates[start]; combine(candidates, start, sum, target, tmp, result);//由于同一个元素可以重复选取,所以依然从start递归 tmp.pop_back(); } vector<vector<int>> combinationSum(vector<int>& candidates, int target) { vector<vector<int>> res; if (candidates.empty()) { return res; } //为了防止出现重复的集合,先对candidates进行排序 std::sort(candidates.begin(), candidates.end()); auto end = std::unique(candidates.begin(), candidates.end()); candidates.erase(end, candidates.end()); vector<int> tmp; combine(candidates, 0, 0, target, tmp, res); return res; }};
0 0
- LeetCode——Combination Sum
- leetcode——Combination Sum
- Leetcode题集——combination-sum and combination-sumII
- LeetCode——Combination Sum II
- leetcode——Combination Sum II
- leetcode 038 —— Combination Sum
- leetcode 040 —— Combination Sum II
- LeetCode题解——Combination Sum
- LeetCode题解——Combination Sum II
- LeetCode题解——Combination Sum III
- leetcode——Combination Sum II
- Leetcode——216. Combination Sum III
- LeetCode—**Combination Sum 利用DFS算法
- LeetCode—377. Combination Sum IV
- leetcode—— 39——Combination Sum
- leetcode——40——Combination Sum II
- 【leetcode】Array——Combination Sum I/II/III
- leetcode——39.Combination Sum【无限0-1背包】
- POI之图片导出到PPT简单实例
- ubuntu下安装spark
- C面试宝典-(程序题)1
- Fragment的陷阱
- Android MediaPlayer工具类
- leetcode——Combination Sum
- 题目: 输入一串数据,删除重复的数据。注意:读取字符串的顺序为从右往左,如果结果是以0结束,则删除0;如果结果有负号'-' 需要保留。
- 浏览器多用户Profile容器化技术
- 补做作业2
- PAT-B 1048. 数字加密
- [TCP/IP详解:协议]第11章UDP学习记录
- iOS 编码(Base64) + 哈希摘要(MD5+SHA)
- 柴俊理金:6、17午夜黄金,宁贵沥青操作策略
- 安卓Android科大讯飞语音识别代码使用详解