【Leetcode】【Medium】Combination Sum
2015-03-06 04:44
447 查看
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
A solution set is:
解题思路:
使用回溯的思想穷举可能的结果。
代码:
另:是否还有DP/DFS等其他思路。
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,7and target
7,
A solution set is:
[7]
[2, 2, 3]
解题思路:
使用回溯的思想穷举可能的结果。
代码:
class Solution { public: vector<vector<int>> combinationSum(vector<int>& candidates, int target) { vector<vector<int>> lst; vector<int> ans; sort(candidates.begin(), candidates.end()); Backtracking(lst, ans, candidates, 0, target); return lst; } void Backtracking(vector<vector<int>> &lst, vector<int> ans, vector<int> candidates, int idx, int left) { for (int i = idx; i < candidates.size(); ++i) { int cur_left = left - candidates[i]; if (cur_left == 0) { ans.push_back(candidates[i]); lst.push_back(ans); return; } if (cur_left > 0) { ans.push_back(candidates[i]); Backtracking(lst, ans, candidates, i, cur_left); ans.pop_back(); } else { return; } } } };
另:是否还有DP/DFS等其他思路。
相关文章推荐
- 【LeetCode】Combination Sum - Medium
- LeetCode-39-Combination Sum(DFS)-Medium
- [Leetcode 39, Medium] Combination Sum
- 【Leetcode】【Medium】Set Matrix Zeroes
- LeetCode解题报告 357. Count Numbers with Unique Digits [medium]
- [LeetCode] 035. Search Insert Position (Medium) (C++)
- LeetCode解题报告 377. Combination Sum IV [medium]
- LeetCode(39) Combination Sum
- [leetcode 39] Combination Sum
- LeetCode-5-Longest Palindromic Substring(动态规划)-Medium
- Leetcode 116. Populating Next Right Pointers in Each Node (Medium) (cpp)
- 【LeetCode】Construct Binary Tree From Inorder And Postorder Traversal 中序遍历和后序遍历树构造二叉树 - Medium
- [leetcode]Combination Sum
- [Leetcode 152, Medium] Maximum Product Subarray
- Leetcode 311. Sparse Matrix Multiplication (Medium) (cpp)
- LeetCode-12-Integer to Roman(哈希)-Medium
- Leetcode解题笔记 3.Longest Substring Without Repeating Characters [Medium]
- 394.leetcode Decode String(medium)[栈 字符串]
- leetcode | Combination Sum & Combination Sum 2
- [LeetCode] Combination Sum (bfs)