leetcode 216. Combination Sum III
来源:互联网 发布:如何优化404页面 编辑:程序博客网 时间:2024/06/05 19:33
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.
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]]
求出1~9所有和为N的K个数,不能重复,不需要连续。
建立一个函数,1~9中一个个推进,分别递归调用自己,如果vec已满足K个数,和为N则push_back到res,否则跳出递归,进行for的下一个递归。
小Tips,可以根据目前vec最后的一个数来判断已递归到1~9中的第几个,然后直接对其+1就是需要在这个递归中for的起始点。
代码
class Solution {public:void combinationSum(int k, int n, vector<int>& vec, vector<vector<int>>& res){if (n == 0){if (k == 0)res.push_back(vec);return;}int small;if (vec.empty())small = 0;elsesmall = vec.back();for (int index = small+1; index <= k / n && index<=9; ++index){vec.push_back(index);combinationSum(k - index, n - 1, vec, res);vec.pop_back();}}vector<vector<int>> combinationSum3(int n, int k){vector<int> vec;vector<vector<int>> res;combinationSum(k, n, vec, res);return res;}};
0 0
- [leetcode] 216.Combination Sum III
- LeetCode 216. Combination Sum III
- 216. Combination Sum III LeetCode
- [leetcode] 216. Combination Sum III
- [LeetCode]216. Combination Sum III
- leetcode 216. Combination Sum III
- LeetCode *** 216. Combination Sum III
- LeetCode 216. Combination Sum III
- leetcode.216. Combination Sum III
- leetcode 216. Combination Sum III
- [Leetcode]216. Combination Sum III
- [leetcode] 216. Combination Sum III
- 【leetcode】216. Combination Sum III
- LeetCode 216. Combination Sum III
- leetcode:216. Combination Sum III
- [LeetCode]216. Combination Sum III
- Leetcode 216. Combination Sum III
- LeetCode 216. Combination Sum III
- C++在STM8单片机上封装NRF24L01模块
- hdu 1013 Digital Roots
- ScreenPointToRay
- 汉诺塔问题
- C++ STL中迭代器介绍
- leetcode 216. Combination Sum III
- 关于listview 的更新问题
- Android 自定义View之随机生成图片验证码
- c++使用MYSQL教程
- 关于IDEA找不到classpath中package内的xml文件问题和解决办法
- Android数据库(SQLite)框架——LitePal实战入门
- MongoDB(一)简介和安装使用
- Linux基础命令
- Java并发编程-阻塞队列(BlockingQueue)的实现原理