[LeetCode-Algorithms-40] "Combination Sum II" (2017.11.29-WEEK13)
来源:互联网 发布:java实用教程 编辑:程序博客网 时间:2024/06/06 02:49
题目链接:Combination Sum II
- 题目描述:
Given a collection of candidate numbers (C) and a target number (T), find all unique combinations in C where the candidate numbers sums to T.
Each number in C may only be used once in the combination.
Note:All numbers (including target) will be positive integers. The solution set must not contain duplicate combinations.
For example, given candidate set [10, 1, 2, 7, 6, 1, 5] and target 8,
A solution set is:
[ [1, 7], [1, 2, 5], [2, 6], [1, 1, 6]]
(1)思路:递归回溯,但注意在同一层递归树中,如果某元素已经处理并进入下一层递归,那么与该元素相同的值就应该跳过,否则将出现重复;另外,相同元素第一个进入下一层递归,而不是任意一个。
(2)代码:
class Solution {public: vector<vector<int> > combinationSum2(vector<int>& candidates, int target) { sort(candidates.begin(), candidates.end()); vector<vector<int> > ret; vector<int> cur; Helper(ret, cur, candidates, target, 0); return ret; } void Helper(vector<vector<int> > &ret, vector<int> cur, vector<int> &candidates, int target, int position){ if(target == 0) ret.push_back(cur); else{ for(int i = position; i < candidates.size() &&candidates[i] <= target; i ++){ if(i != position && candidates[i] == candidates[i-1]) continue; cur.push_back(candidates[i]); Helper(ret, cur, candidates, target-candidates[i], i+1); cur.pop_back(); } } }};
(3)提交结果:
阅读全文
0 0
- [LeetCode-Algorithms-40] "Combination Sum II" (2017.11.29-WEEK13)
- [LeetCode-Algorithms-39] "Combination Sum" (2017.11.29-WEEK13)
- Leetcode: 40. Combination Sum II(Week13, Medium)
- LeetCode(40) Combination Sum II
- [leetcode 40] Combination Sum II
- leetcode || 40、Combination Sum II
- leetcode 40: Combination Sum II
- Leetcode #40 Combination Sum II
- LeetCode(40) Combination Sum II
- LeetCode-40 Combination Sum II
- LeetCode 40: Combination Sum II
- leetcode 40:Combination Sum II
- Leetcode 40 - Combination Sum II
- 【leetcode】【40】Combination Sum II
- LeetCode 40 - Combination Sum II
- LeetCode(40)-Combination Sum II
- 【LeetCode-40】Combination Sum II
- LeetCode 40 Combination Sum II
- 微信notify
- Makefie -- 隐含条件
- 第十三周项目3-是否二叉排序树?
- 精通脚本黑客-2.1-学习笔记
- 扩展欧拉定理的证明 欧拉定理的推广
- [LeetCode-Algorithms-40] "Combination Sum II" (2017.11.29-WEEK13)
- js 网站增加统计代码
- linux积累(一)---查看压缩文件的最后一行
- BZOJ5100[POI2018]Plan metra 构造
- android 之 activity(三、intent 详解)
- #脱离连接xcode记录自定义打印数据,方便分析
- 记录 VS 2012编译Qt 4.8.6
- python中的scipy库
- web应用从开发环境自动部署至tomcat的方法