216 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.
Example 1:
Input: k = 3, n = 7
Output:
|
|
Example 2:
Input: k = 3, n = 9
Output:
|
|
思路
题目需要我们找到利用k个不重复数字相加,得到数字n的所有组合。
首先想到暴力搜索,思考一下,k取1-9之间,最多会有多少种情况?答案是k取4时,C(9, 4) = 126种。k取其它数值,情况数只会比126要少。
现在的关键问题就是给定k,我们需要知道从1-9中取k个数的所有组合,再根据题意筛选所需的组合即可。
此时我们还是可以利用回溯的方法,
|
|
参考资料
Python- itertools中组合数的实现:
https://docs.python.org/2/library/itertools.html
组合问题的求解:
http://wuchong.me/blog/2014/07/28/permutation-and-combination-realize/
组合问题的求解:
http://blog.csdn.net/zmazon/article/details/8315418
LeetCode 77题 - Combination 解法大全:
http://www.cnblogs.com/TenosDoIt/p/3461555.html
排列组合算法:
http://www.cnblogs.com/TenosDoIt/p/3695472.html