leetcode 39 Combination Sum
来源:互联网 发布:spring mysql 主从 编辑:程序博客网 时间:2024/06/18 01:24
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: typedef vector<int>::iterator It; vector<vector<int>> combinationSum(vector<int>& candidates, int target) { vector<vector<int> > ret; sort(candidates.begin(), candidates.end()); vector<int> ans; combine(candidates.begin(), candidates.end(), target, ans, ret); return ret; }private: void combine(It begin, It end, int target, vector<int>& ans, vector<vector<int> >& ret){ for (It it = begin; it != end; ++it) { vector<int> tmp(ans); int val = *it; if (val < target) { tmp.push_back(val); combine(it, end, target - val, tmp, ret); } else if (val == target) { tmp.push_back(val); ret.push_back(tmp); return; // 后面的都更大,所以返回 } else { // val > target return; } } }}; // about 50%
参考后
快很多
class Solution {public: typedef vector<int>::iterator It; vector<vector<int>> combinationSum(vector<int>& candidates, int target) { vector<vector<int> > ret; sort(candidates.begin(), candidates.end()); vector<int> ans; combine(candidates.begin(), candidates.end(), target, ans, ret); return ret; }private: void combine(It begin, It end, int target, vector<int>& ans, vector<vector<int> >& ret){ for (It it = begin; it != end; ++it) { int val = *it; if (val < target) { ans.push_back(val); combine(it, end, target - val, ans, ret); ans.pop_back(); } else if (val == target) { ans.push_back(val); ret.push_back(ans); ans.pop_back(); return; // 后面的都更大,所以返回 } else { // val > target return; } } }}; // about 75%
阅读全文
0 0
- LeetCode 39: Combination Sum
- LeetCode(39) Combination Sum
- [leetcode 39] Combination Sum
- leetcode 39: Combination Sum
- leetcode || 39、Combination Sum
- leetcode 39 : Combination Sum
- leetcode 39: Combination Sum
- Leetcode #39 Combination Sum
- LeetCode(39) Combination Sum
- LeetCode-39 Combination Sum
- leetcode 39:Combination Sum
- LeetCode 39: Combination Sum
- Leetcode 39 - Combination Sum
- 【leetcode】【39】Combination Sum
- LeetCode 39 - Combination Sum
- LeetCode(39)-Combination Sum
- Leetcode 39 Combination Sum
- leetcode 39 Combination Sum
- 微软官网关于网络驱动程序设计指南
- 坦克大战java源码分析(上)
- [区块链技术] 吐血推荐!区块链从入门到放弃(区块链入门汇总整理)
- Codeforces Round #439 (Div. 2) E. The Untended Antiquity
- Java嵌套类与内部类
- leetcode 39 Combination Sum
- Eclipse Console输出长度限制
- [机器学习] UFLDL笔记
- construct2初次使用
- Request对象与Response对象
- 10.8考试爆炸记
- 安装studio 快捷键的修改与常用类的关联
- DeepLearing学习笔记-Building your Deep Neural Network: Step by Step(第四周作业)
- 网络驱动简介