Open Tcdian opened 3 years ago
/**
* @param {number} k
* @param {number} n
* @return {number[][]}
*/
var combinationSum3 = function(k, n) {
const reuslt = [];
const part = [];
backtracking(1);
return reuslt;
function backtracking(index) {
const sum = part.reduce((prev, current) => prev + current, 0);
if (sum >= n || part.length >= k) {
if (sum === n && part.length === k) {
reuslt.push([...part]);
}
return;
}
for (let i = index; i <= 9; i++) {
part.push(i);
backtracking(i + 1);
part.pop();
}
}
};
function combinationSum3(k: number, n: number): number[][] {
const reuslt: number[][] = [];
const part: number[] = [];
backtracking(1);
return reuslt;
function backtracking(index: number) {
const sum = part.reduce((prev, current) => prev + current, 0);
if (sum >= n || part.length >= k) {
if (sum === n && part.length === k) {
reuslt.push([...part]);
}
return;
}
for (let i = index; i <= 9; i++) {
part.push(i);
backtracking(i + 1);
part.pop();
}
}
}
216. Combination Sum III
找出所有相加之和为
n
的k
个数的组合。组合中只允许含有1 - 9
的正整数,并且每种组合中不存在重复的数字。说明:
Example 1
Example 2