39.leetcode Combination Sum(medium)[递归回溯]
来源:互联网 发布:mac安装linux虚拟机 编辑:程序博客网 时间:2024/04/30 14:44
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.
- 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]]
因为每个元素可以取多次并且最后的结果不能重复,因此先对所有的元素排序,在递归的时候从当前遍历的这个点i开始继续就可以重复遍历。
class Solution {public: int getSum1(vector<int> &temp) { int total = 0; for(int i = 0;i<temp.size();i++) { total += temp[i]; } return total; } void getSum(int start,int n,int target,vector<int>& candidates,vector<int> &mid,vector<vector<int> > &result) { int sum = getSum1(mid); if(target == sum) { result.push_back(mid); return; }else if(sum > target) return; for(int i= start;i<n;i++) { mid.push_back(candidates[i]); getSum(i,n,target,candidates,mid,result); mid.pop_back(); } return; } vector<vector<int>> combinationSum(vector<int>& candidates, int target) { int n = candidates.size(); vector<vector<int> > result; if(n == 0) return result; vector<int> mid; sort(candidates.begin(),candidates.end()); getSum(0,n,target,candidates,mid,result); cout<<result.size()<<endl; return result; }};
0 0
- 39.leetcode Combination Sum(medium)[递归回溯]
- 40.leetcode Combination Sum II(medium)[递归回溯]
- 216.leetcode Combination Sum III(medium)[回溯]
- leetcode 39. Combination Sum-回溯算法|递归|非递归
- Leetcode|Combination Sum II[递归回溯]
- leetcode Combination Sum III-回溯|递归
- 78.leetcode Subsets(medium)[回溯递归循环调用combination即可]
- Leetcode 39. Combination Sum (Medium) (cpp)
- Leetcode 39. Combination Sum (Medium) (java)
- Leetcode: 39. Combination Sum(Week12, Medium)
- 【LeetCode】39.Combination Sum(Medium)解题报告
- [leetcode][回溯] Combination Sum
- 39. Combination Sum -Medium
- 39. Combination Sum Medium
- (回溯法)LeetCode#39. Combination Sum
- [Leetcode 39, Medium] Combination Sum
- LeetCode #39 - Combination Sum - Medium
- [leetcode][回溯] Combination Sum II
- SQL表连接查询
- 联合、枚举、双指针、void*、函数指针
- 各种算法优缺点
- 匈牙利算法
- uvalive 6609 - Minimal Subarray Length(离散化+树状数组)
- 39.leetcode Combination Sum(medium)[递归回溯]
- Docker 1.12新功能探索(10):network基础
- RC4笔记
- Power Strings--KMP,最小循环节
- 欢迎使用CSDN-markdown编辑器
- ACM学习历程15——list双向链表容器
- 接口(一)
- Java 红黑树
- 设计模式——工厂模式