Leetcode 40组合总和II
2019-01-21 22:32
246 查看
思路:同上一题类似,需先进行排序,并加入 if (i > start && num[i] == num[i - 1]) continue;使得每个数字在每个组合中只能使用一次。
class Solution { public: vector<vector<int> > combinationSum2(vector<int> &num, int target) { vector<vector<int> > res; vector<int> out; sort(num.begin(), num.end()); combinationSum2DFS(num, target, 0, out, res); return res; } void combinationSum2DFS(vector<int> &num, int target, int start, vector<int> &out, vector<vector<int> > &res) { if (target < 0) return; else if (target == 0) res.push_back(out); else { for (int i = start; i < num.size(); ++i) { if (i > start && num[i] == num[i - 1]) continue; out.push_back(num[i]); combinationSum2DFS(num, target - num[i], i + 1, out, res); out.pop_back(); } } } };
相关文章推荐
- LeetCode 40 Combination Sum II(数组中求和等于target的所有组合)
- [LeetCode]40 和的组合 II
- Leetcode 40. 组合总和 II
- (Java) LeetCode 40. Combination Sum II —— 组合总和 II
- leetCode 40.Combination Sum II(组合总和II) 解题思路和方法
- leetcode78、90-Subsets I/II(组合数/子集数目)
- Leetcode 40 Combination Sum II
- LeetCode 113. 路径总和 II Python
- Combination Sum II 无序数组中找组合(每个元素只能用一次)使得和为target@LeetCode@LeetCode
- LeetCode 39 && 40 Combination Sum I && II 关键在于剪枝,剪枝讨论在末尾
- Leetcode 40 - Combination Sum II
- Leetcode40 Combination Sum II
- leetcode 40:Combination Sum II
- LeetCode 40 - Combination Sum II
- [C++]LeetCode: 113 Word Break II (DP && Backtacking) 求解拆分组合
- LeetCode_OJ【40】Combination Sum II
- LeetCode40 Combination Sum II 解析
- 回溯之Leetcode 40——Combination Sum II
- Leetcode Subsets II 有重复元素的组合
- LeetCode 40---Combination Sum II