LeetCode - Combination Sum
来源:互联网 发布:网上兼职淘宝真的好吗 编辑:程序博客网 时间:2024/05/24 03:32
Given a set of candidate numbers (C) and a target number (T), find all unique combinations in C where the candidate numbers sums to T.
The same repeated number may be chosen from C unlimited number of times.
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 2,3,6,7
and target 7
,
A solution set is: [7]
[2, 2, 3]
class Solution {public: void findPath(set<vector<int> >& numSet, vector<vector<int> >& dp,vector<int> &candidates, vector<int>& path,int value){if(value==0){vector<int> tmp(path);sort(tmp.begin(),tmp.end());numSet.insert(tmp);return;}for(int i=0;i<dp.size();i++){if(dp[i][value]!=-1){path.push_back(candidates[i]);findPath(numSet,dp,candidates,path,dp[i][value]);path.pop_back();}} } vector<vector<int> > combinationSum(vector<int> &candidates, int target) { vector<vector<int> > result;if(candidates.empty()||candidates.size()==0){return result;}int n=candidates.size(); sort(candidates.begin(),candidates.end());vector<vector<int> > dp(n,vector<int>(target+1,-1));set<vector<int> > numSet;vector<bool> visited(target+1,false);vector<int> path;visited[0]=true; for(int i=0;i<n;i++){if(candidates[i]>target){break;}for(int j=candidates[i];j<=target;j++){if(visited[j-candidates[i]]==true){dp[i][j]=j-candidates[i];visited[j]=true;}}}findPath(numSet,dp,candidates,path,target);result.assign(numSet.begin(),numSet.end()); return result; }};
- [LeetCode] Combination Sum、Combination Sum II
- 【LeetCode】Combination Sum && Combination Sum II
- leetcode之Combination Sum && Combination Sum II
- leetcode Combination Sum &Combination Sum II
- leetcode-combination sum and combination sum II
- Leetcode:Combination Sum与Combination Sum II
- leetcode Combination Sum VS Combination Sum II
- [Leetcode]Combination Sum &&Combination Sum II
- LeetCode Combination Sum & Combination Sum II
- leetcode | Combination Sum & Combination Sum 2
- LeetCode: Combination Sum
- LeetCode: Combination Sum II
- LeetCode: Combination Sum
- LeetCode: Combination Sum II
- [LeetCode]Combination Sum
- [LeetCode]Combination Sum II
- LeetCode Combination Sum
- LeetCode Combination Sum II
- 1.1
- .Net上的线程
- C#生成随机数的三种方法
- Linux两台主机之间建立信任
- poj3278 Catch That Cow(bfs搜索)
- LeetCode - Combination Sum
- kindEditor完整认识 PHP上调用并上传图片说明
- hdu4082 Hou Yi's secret(相似三角形)
- AAAI-2013概述(1)
- 网页中使用的特殊字体(webdings, wingdings 2)续
- FATE hdu 二维费用背包
- ecshop点击订购、加入按钮没反应的解决方法
- 内存数据库Altibase的开启关闭和进入sql命令行方法
- kernel_mktime 函数详解