javascript 组合求和
欢迎来到阿八个人博客网站。本 阿八个人博客 网站提供最新的站长新闻,各种互联网资讯。 喜欢本站的朋友可以收藏本站,或者加QQ:我们大家一起来交流技术! URL链接:https://www.abboke.com/jsh/2019/0724/97961.html 1190000019851023
前端小白---学习之旅
思路解析(组合求和)
数组元素 [1,2,3,4,6] 目标: 7
成立:[3,4]
成立:[1,2,4]
思路:目标减去 - 任意组合 = 0 // 则成立
代码
function combinatorialSum(
targetArr, // 数列
targetsum, // 目标数组
generatearr = [], // 生成的数组
combination = [])
{
if (targetsum < 0) return;
if (targetsum === 0) {
// 此时 combination 虽然可以打印出值 但是由于是地址引用 所以它会返回之前的长度 但是会返回修改后的结果
// combination.slice() || [... combination]
generatearr.push(combination.slice())
return generatearr;
}
// 遍历这个数组 targetArr
for (let i = 0; i < targetArr.length; i++) {
const item = targetArr[i];
combination.push(targetArr[i]);
combinatorialSum(targetArr, targetsum - item, generatearr, combination);
combination.pop();
}
return generatearr;
}