LeetCode: Combination Sum II
来源:互联网 发布:linux多核cpu工作原理 编辑:程序博客网 时间:2024/06/06 05:50
Given a collection of candidate numbers (C) and a target number (T), find all unique combinations inC 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 target8
,
A solution set is:
[ [1, 7], [1, 2, 5], [2, 6], [1, 1, 6]]class Solution { private: int index_count; vector<vector<int> > results; public: void backtrace(int target, int sum, vector<int>& candidates, vector<int>& index, int id, int n) { if (sum > target) { return; } if (sum == target) { vector<int> result; for (int i = 1; i <= n; ++i) { result.push_back(candidates[index[i]]); } results.push_back(result); return; } // To avoid repeat for (int i = id + 1; i < candidates.size(); ++i) { index[n+1] = i; backtrace(target, sum + candidates[i], candidates, index, i, n+1); while(i < candidates.size() && candidates[i] == candidates[i+1]) { // remove repeat numbers i++; } } } vector<vector<int>> combinationSum2(vector<int>& candidates, int target) { sort(candidates.begin(), candidates.end()); vector<int> real_cdts; for (int i = 0; i < candidates.size(); ++i) { if (candidates[i] <= target) { real_cdts.push_back(candidates[i]); } else { break; } } index_count = 10000; vector<int> index = vector<int>(index_count, 0); results.clear(); backtrace(target, 0, real_cdts, index, -1, 0); return results; }};
0 0
- 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】
- [LeetCode] Combination Sum II
- 通过IP隧道实现虚拟服务器(VS/TUN)
- js限制只输入中文字符
- 002 - window.open()
- 从零开始实现k线图走势图绘制(iOS理论篇)
- 错误日志的实时抓取保证代码质量
- LeetCode: Combination Sum II
- Nginx+Tomcat实现单IP、多域名、多站点的访问
- eval( )方法动态运行一行或多行程序代码。
- KVO,Key-Value Observing
- xib的加载
- QML中的Canvas绘图---渐变
- 轻量级HTTP服务器Nginx(常用配置实例)
- Java 资源文件路径详解(getResource)
- android 数据抓包,模拟响应