内容简介: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.Note:All numbers will be positive integers.
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.
Note:
All numbers will be positive integers.
The solution set must not contain duplicate combinations.
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]]
难度:medium
题目:找出所有可能的K个数之和为n的组合,只可以使用1到9之间的数。
注意:所有数都为正,给出的答案中不包含重复的数。
思路:递归
Runtime: 1 ms, faster than 66.65% of Java online submissions for Combination Sum III.
Memory Usage: 35 MB, less than 54.02% of Java online submissions for Combination Sum III.
class Solution {
public List<List<Integer>> combinationSum3(int k, int n) {
List<List<Integer>> result = new ArrayList<>();
if (n > 45 || n < 1 || k < 1 || k > 9) {
return result;
}
combination(1, k, 0, n, new Stack<>(), result);
return result;
}
private void combination(int begin, int k, int sum, int n,
Stack<Integer> stack, List<List<Integer>> result) {
if (k < 0 || sum > n) {
return;
}
if (0 == k && sum == n) {
result.add(new ArrayList<>(stack));
return;
}
for (int i = begin; i <= 9 - k + 1; i++) {
stack.push(i);
combination(i + 1, k - 1, sum + i, n, stack, result);
stack.pop();
}
}
}
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
黑客大曝光
Joel Scambray、Vincent Liu、Caleb Sima / 姚军 / 机械工业出版社华章公司 / 2011-10 / 65.00元
在网络技术和电子商务飞速发展的今天,Web应用安全面临着前所未有的挑战。所有安全技术人员有必要掌握当今黑客们的武器和思维过程,保护Web应用免遭恶意攻击。本书由美国公认的安全专家和精神领袖打造,对上一版做了完全的更新,覆盖新的网络渗透方法和对策,介绍如何增强验证和授权、弥补Firefox和IE中的漏洞、加强对注入攻击的防御以及加固Web 2.0安全,还介绍了如何将安全技术整合在Web开发以及更广泛......一起来看看 《黑客大曝光》 这本书的介绍吧!