算法分析与设计——LeetCode:39. Combination Sum
2018-01-03 15:07
417 查看
题目
Given a set of candidate numbers (C) (without duplicates) 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]
]
class Solution { public: vector<vector<int>> combinationSum(vector<int>& candidates, int target) { } };
思路
这是从题目的讨论中看到的方法,循环遍历,如[2, 3, 6, 7],当i为0,放入一个2进入combination,再继续在[2, 3, 6, 7]里选择;当i为1时,则不再有2,只在[3, 6, 7]里选择,最终可以涵盖所有情况。代码
class Solution { public: vector<vector<int>> combinationSum(vector<int>& candidates, int target) { sort(candidates.begin(), candidates.end()); vector<vector<int> > res; vector<int> combination; combinationSum(candidates, target, res, combination, 0); return res; } void combinationSum(vector<int> &candidates, int target, vector<vector<int> > &res, vector<int> &combination, int head) { if (target == 0) { res.push_back(combination); return; } for (int i = head; i < candidates.size() 4000 && candidates[i] <= target; i++) { combination.push_back(candidates[i]); combinationSum(candidates, target - candidates[i], res, combination, i); combination.pop_back(); } } };
相关文章推荐
- 算法分析与设计——LeetCode刷题之TwoSum(easy)
- 算法分析与设计——LeetCode Problem.64 Minimum Path Sum
- 算法分析与设计——LeetCode Problem.18 4Sum
- [算法分析与设计] leetcode 每周一题: 494. Target Sum
- 算法分析与设计——LeetCode Problem.653 Two Sum IV - Input is a BST
- 算法分析与设计课程——LeetCode刷题之3Sum
- 算法分析与设计丨第十八周丨LeetCode(21)——Binary Tree Maximum Path Sum(Hard)
- 算法分析与设计课程——LeetCode刷题之Merge Two Sorted Lists
- 算法分析与设计——LeetCode Problem.258 Add Digits
- 算法分析与设计课程——LeetCode刷题之 Pow(x, n)
- 算法分析与设计——LeetCode Problem.98 Validate Binary Search Tree
- 算法分析与设计——LeetCode Problem.198 House Robber
- 算法分析与设计——LeetCode:2.Add Two Numbers
- 算法分析与设计课程(8):【leetcode】Sudoku Solver
- 算法分析与设计——LeetCode:5. Longest Palindromic Substring
- 算法分析与设计课程(7):【leetcode】Reverse Nodes in k-Group
- [算法分析与设计] leetcode 每周一题: Find Right Interval
- 算法分析与设计——LeetCode Problem.213 House Robber II
- 【LeetCode】39. Combination Sum & 40. Combination Sum II分析及解法&DFS
- 算法分析与设计——LeetCode Problem.22 Generate Parentheses