Combination Sum II
来源:互联网 发布:淘宝司法拍卖房产平台 编辑:程序博客网 时间:2024/05/12 14:21
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: void comb(vector<int> &num, vector<int> &count, vector< vector<int> > &result, vector<int> &record, int target, int sum, int pos, int s) { if (sum == target) { result.push_back(vector<int>()); for (int i = 0; i < pos; ++i) result.back().push_back(record[i]); } if (pos >= record.size() || sum > target) return; for(int i = s; i < num.size(); ++i) { if (count[i] > 0) { count[i]--; record[pos] = num[i]; comb(num, count, result, record, target, sum+num[i], pos+1, i); count[i]++; } } } vector<vector<int> > combinationSum2(vector<int> &num, int target) { // Start typing your C/C++ solution below // DO NOT write int main() function int nSize = num.size(); vector< vector<int> > result; if (nSize == 0) return result; sort(num.begin(), num.end()); vector<int> nums; nums.push_back(num[0]); vector<int> count; count.push_back(1); for(int i = 1; i < num.size(); ++i) { if (num[i] == nums.back()) ++count.back(); else { nums.push_back(num[i]); count.push_back(1); } } vector<int> record(nSize); comb(nums, count, result, record, target, 0, 0, 0); return result; }};
- Combination Sum && Combination Sum II
- Combination Sum Combination Sum II
- 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] Combination Sum II
- LeetCode Combination Sum II
- [Leetcode] Combination Sum II
- Combination Sum II
- LeetCode: Combination Sum II
- Combination Sum II
- leetcode Combination Sum II
- Combination Sum II
- [LeetCode]Combination Sum II
- insmod: error inserting 'first_drv.ko': -1 Invalid module format
- 主流操作系统内核、操作系统以及它们之间的联系
- hdu 1087 Super Jumping! Jumping! Jumping!(dp+最长递增序列)
- kernel中断
- 再读HOG(梯度方向直方图)
- Combination Sum II
- 大学计算机网络复习题
- Android开发学习第一天
- Ubuntu 12.04 LTS,MySQL不支持中文,C语言从数据库中读取出来的中文显示???
- secure CRT 登陆虚拟机中ubuntu详解
- MySQL数据库备份与恢复方法
- CTreeCtrl
- Oracle Solaris 11 配置网络
- Combinations