【LeetCode】216. Combination Sum III
2015-07-07 17:06
375 查看
Combination Sum III
Find all possible combinations of k numbers that add up to a number n, given that only numbers from 1 to 9 can be used and each combination should be a unique set of numbers.
Ensure that numbers within the set are sorted in ascending order.
Example 1:
Input: k = 3, n = 7
Output:
Example 2:
Input: k = 3, n = 9
Output:
Credits:
Special thanks to @mithmatt for adding this problem and creating all test cases.
参考Combination Sum II,把去重条件去掉(1-9本身就不包含重复元素),仅返回包含k个元素的vector
Find all possible combinations of k numbers that add up to a number n, given that only numbers from 1 to 9 can be used and each combination should be a unique set of numbers.
Ensure that numbers within the set are sorted in ascending order.
Example 1:
Input: k = 3, n = 7
Output:
[[1,2,4]]
Example 2:
Input: k = 3, n = 9
Output:
[[1,2,6], [1,3,5], [2,3,4]]
Credits:
Special thanks to @mithmatt for adding this problem and creating all test cases.
参考Combination Sum II,把去重条件去掉(1-9本身就不包含重复元素),仅返回包含k个元素的vector
class Solution { public: vector<vector<int>> combinationSum3(int k, int n) { vector<int> num(9); for(int i = 0; i < 9; i ++) num[i] = i+1; return combinationSum2(num, n, k); } vector<vector<int> > combinationSum2(vector<int> &num, int target, int k) { sort(num.begin(), num.end()); vector<vector<int> > ret; vector<int> cur; Helper(ret, cur, num, target, 0, k); return ret; } void Helper(vector<vector<int> > &ret, vector<int> cur, vector<int> &num, int target, int position, int k) { if(target == 0) { if(cur.size() == k) ret.push_back(cur); else ; } else { for(int i = position; i < num.size() && num[i] <= target; i ++) { cur.push_back(num[i]); Helper(ret, cur, num, target-num[i], i+1, k); cur.pop_back(); } } } };
相关文章推荐
- Android WiFiDirect 学习(二)——Service Discovery
- cloudstack安装篇2-主机名配置
- 关于【bootstrap modal 模态框弹出瞬间消失的问题】
- 一篇不错的对于乐观锁和悲观锁的解释帖子
- 复杂度与时间效率的关系
- Java NIO:浅析I/O模型
- Zabbix监控
- 高性能的SQL语句
- PL/SQL Developer无法登录Oracle
- PAT 1046. Shortest Distance (20)
- 可穿戴设备(CC2541)上微信(2)
- CMDBuild安装及webservice接口的获取
- iOS7下滑动返回与ScrollView共存二三事
- UML类图几种关系的总结
- 哈佛图书馆的二十条训言
- PL/SQL和SQLPLUS查询结果不一样——千万别忘记commit!
- Bitmap的一些操作
- php -- ziparchive::open创建zip压缩文件
- linux配置端口转发
- 基于quartz1.66+spring2.5的一个模块化设计