Leetcode:39. 组合总和
2019-05-21 00:14
281 查看
给定一个无重复元素的数组
candidates和一个目标数
target,找出
candidates中所有可以使数字和为
target的组合。
candidates中的数字可以无限制重复被选取。
说明:
- 所有数字(包括
target
)都是正整数。 - 解集不能包含重复的组合。
示例 1:
输入: candidates = [code][2,3,6,7],target =
7, 所求解集为: [ [7], [2,2,3] ] [/code]
示例 2:
输入: candidates = [2,3,5][code],target = 8, 所求解集为: [ [2,2,2,2], [2,3,3], [3,5] ][/code]
其实很简单的回溯思想,深度优先搜索
[code]class Solution { public: vector<vector<int>> combinationSum(vector<int>& candidates, int target) { vector<vector<int>> ans_sum; vector<int> ans; int sum = 0; find(0, target, sum, ans, candidates, ans_sum); return ans_sum; } void find(int start, int target, int sum, vector<int>& ans, vector<int>& candidates, vector<vector<int>>& ans_sum) { if(sum == target){ ans_sum.push_back(ans); return; } for(int i = start; i < candidates.size(); i++){ if(sum < target){ ans.push_back(candidates[i]); sum += candidates[i]; find(i, target, sum, ans, candidates, ans_sum); ans.pop_back(); sum = sum - candidates[i]; } else{ return; } } } };
睡觉了,晚安
相关文章推荐
- LeetCode-Python-39. 组合总和
- LeetCode 39. 组合总和 c++
- 【leetcode】39. 组合总和(java实现)
- Leetcode做题日记:39. 组合总和(PYTHON)
- Leetcode 39. 组合总和
- leetcode39. 组合总和、40. 组合总和 II(c++)
- 【Leetcode】39. 组合总和
- Leetcode 40. 组合总和 II
- 利用python 完成 leetcode 216 组合总和 III
- (LeetCode 216)组合总和 III [DFS:简单入门 + 去重]
- 【Leetcode】40. 组合总和 II
- Leetcode 39组合总和
- leetCode 39.Combination Sum(组合总和) 解题思路和方法
- [LeetCode] 39.组合总和
- 【Leetcode】377. Combination Sum IV 377. 组合总和 Ⅳ
- LeetCode-Python-216. 组合总和 III
- [LeetCode]40.组合总和II
- LeetCode_Q39_ 组合总和
- Leetcode 40组合总和II
- leetcode377---组合总和 Ⅳ