LeetCode OJ Combination Sum II
来源:互联网 发布:微信淘口令淘宝打不开 编辑:程序博客网 时间:2024/04/29 01:02
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.
- Elements in a combination (a1, a2, … , ak) must be in non-descending order. (ie, a1 ≤ a2 ≤ … ≤ ak).
- 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]
class Solution {public: vector<vector<int> > ans; // answer vector<int> can; // "can" is a vector from candidates after processing vector<bool> used; int t; vector<vector<int> > combinationSum2(vector<int> &num, int target) { ans.clear(); can = num; sort(can.begin(), can.end()); // to make sure that the solutions in ans is in non-descending order used.resize(can.size()); t = target; dfs(0, 0); sort(ans.begin(), ans.end()); vector<vector<int> > trueAns; for (int i = 0; i < ans.size(); i++) { if (trueAns.size() > 0 && trueAns.back() == ans[i]) continue; trueAns.push_back(ans[i]); } return trueAns; } void dfs(int pos, int nowSum) { if (nowSum == t) { vector<int> anAns; for (int i = 0; i < can.size(); i++) { if (used[i]) anAns.push_back(can[i]); } ans.push_back(anAns); return; } if (nowSum > t || pos >= can.size()) return; used[pos] = false; dfs(pos + 1, nowSum); if (can[pos] + nowSum <= t) { used[pos] = true; dfs(pos + 1, can[pos] + nowSum); used[pos] = false; } }};
0 0
- LeetCode OJ:Combination Sum II
- LeetCode OJ - Combination Sum II
- LeetCode OJ Combination Sum II
- LeetCode OJ-40-Combination Sum II
- [LeetCode OJ]Combination Sum I && II
- LeetCode OJ:Combination Sum
- LeetCode OJ - Combination Sum
- LeetCode OJ Combination Sum
- 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 OJ Permutations II
- OC学习小结之protocol
- LeetCode OJ Jump Game II
- 当初我未嫁,你未娶。你干什么去了?
- LeetCode OJ Permutations
- LeetCode OJ Combination Sum II
- LeetCode OJ Combination Sum
- 我对编程的理解
- MongoDB nagios check_mongodb插件监控
- LeetCode OJ Maximum Subarray
- Android开发学习笔记:浅谈显示Intent和隐式Intent
- 由一段代码谈前端js优化和编码规范(一)
- LeetCode OJ Next Permutation
- 记录我的VHDL学习之路(二)