内容简介:Given aThe回溯法(深度优先搜索,Depth-First Search)
原题
Given a set of candidate numbers ( candidates
) (without duplicates) and a target number ( target
), find all unique combinations in candidates
where the candidate numbers sums to target
.
The same repeated number may be chosen from candidates
unlimited number of times.
Note:
target
Example 1:
<strong>Input:</strong> candidates = <code>[2,3,6,7], </code>target = <code>7</code>, <strong>A solution set is:</strong> [ [7], [2,2,3] ]
Example 2:
<strong>Input:</strong> candidates = [2,3,5]<code>, </code>target = 8, <strong>A solution set is:</strong> [ [2,2,2,2], [2,3,3], [3,5] ]
题解
讲义
考察知识点:
回溯法(深度优先搜索,Depth-First Search)
回溯法搜索轨迹示意图:
代码
class Solution { public: vector<vector <int>> combinationSum(vector<int>& candidates, int target) { vector<vector <int>> result{}; vector<int> candidate{}; sort(candidates.begin(), candidates.end()); sum(result, candidates, target, candidate, 0); return result; } void sum(vector<vector <int>>& result, vector<int>& candidates, int target, vector</int><int>& candidate, int level) { // up to the target if (target == 0) { result.push_back(candidate); return; } for (int i = level; i < candidates.size() && candidates[i] <= target; ++i) { candidate.push_back(candidates[i]); sum(result, candidates, target - candidates[i], candidate, i); candidate.pop_back(); } } };
文章来源:胡小旭 => 小旭讲解 LeetCode 39. Combination Sum 回溯法
题解视频背景音乐:《Sad Angel》
以上所述就是小编给大家介绍的《小旭讲解 LeetCode 39. Combination Sum 回溯法》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:- 回溯算法讲解--适用于leetcode绝大多数回溯题目
- 常用算法之回溯法
- leetcode题解(递归和回溯法)
- 精读《手写 SQL 编译器 - 回溯》
- Linux内核的栈回溯与妙用
- tshark + Elasticsearch 打造流量回溯分析系统
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。