[Leetcode]_40 Combination Sum II
来源:互联网 发布:电影《美国黑帮》知乎 编辑:程序博客网 时间:2024/06/15 04:32
/** * Index: 40 * Title: Combination Sum II * Author: ltree98 **/
和39一样,也是用回溯解决。
但是,备用数组内的数字只能使用一次。
class Solution {private: void traversalAll(vector<int>& candidates, int target, int index, vector<vector<int>>& ans, vector<int> perAns, int perAnsSum) { for(int i = index; i < candidates.size(); i++) { if(i != index && candidates[i] == candidates[i-1]) continue; if(perAnsSum + candidates[i] == target) { perAns.push_back(candidates[i]); ans.push_back(perAns); return; } else if(perAnsSum + candidates[i] < target) { perAns.push_back(candidates[i]); perAnsSum += candidates[i]; traversalAll(candidates, target, i+1, ans, perAns, perAnsSum); perAnsSum -= candidates[i]; perAns.pop_back(); } else { return; } } }public: vector<vector<int>> combinationSum2(vector<int>& candidates, int target) { std::sort(candidates.begin(), candidates.end()); vector<vector<int>> ans = vector<vector<int>>(); vector<int> perAns = vector<int>(); traversalAll(candidates, target, 0, ans, perAns, 0); return ans; }};
阅读全文
0 0
- [Leetcode]_40 Combination Sum II
- LeetCode: Combination Sum II
- LeetCode: Combination Sum II
- [LeetCode]Combination Sum II
- LeetCode Combination Sum II
- [Leetcode] Combination Sum II
- [LeetCode] Combination Sum II
- LeetCode Combination Sum II
- [Leetcode] Combination Sum II
- LeetCode: Combination Sum II
- leetcode Combination Sum II
- [LeetCode]Combination Sum II
- [leetcode] Combination Sum II
- LeetCode-Combination Sum II
- LeetCode - Combination Sum II
- LeetCode:Combination Sum II
- 【Leetcode】Combination Sum II
- Combination Sum II 【leetcode】
- 《JS高级程序设计》第6章读书笔记:对象继承(三)原型式继承和寄生式继承
- C++学习之路 day7
- SQL 优化
- 网页的文件名
- 581. Shortest Unsorted Continuous Subarray
- [Leetcode]_40 Combination Sum II
- CreateFile、ReadFile、WriteFile和fread、fwrite两种读写文件的方法
- 移动前端开发的一些简单分类!
- 【C++心路历程37】钓鱼(刷表法dp)
- Redis-数据结构-字典
- Java-剑指offer-正方体的三面和相等
- 如何判断是输入流还是输出流
- IOS UIScrollView用法总结
- 把set作为vector的元素