题目:
找出所有相加之和为 n 的 k 个数的组合。组合中只允许含有 1 - 9 的正整数,并且每种组合中不存在重复的数字。
说明:
示例 1:
示例 2:
输入: k = 3, n = 9
输出: [[1,2,6], [1,3,5], [2,3,4]]
解答:
var combinationSum3 = function(k, n) {
let temp = [];
const ans = [];
const check = (mask, k, n) => {
temp = [];
for (let i = 0; i < 9; ++i) {
if ((1 << i) & mask) {
temp.push(i + 1);
}
}
return temp.length === k && temp.reduce((previous, value) => previous + value, 0) === n;
}
for (let mask = 0; mask < (1 << 9); ++mask) {
if (check(mask, k, n)) {
ans.push(temp);
}
}
console,log(ans)
//return ans;
};
k = 3; n = 7;
combinationSum3(k, n);
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/combination-sum-iii
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。