算法问题陈述:找到加起来等于目标总和的最小数组。
代码问题: 我不明白以下情况下结果的差异:
与
请参考下面的评论行。
Spread 语法返回正确的解决方案,而 .push() 方法继续推送到同一个数组。我不明白为什么它不断引用内存中的同一数组。
提前谢谢了!
let howSum = (target, arr, memo = {}) => {
if (target in memo) return memo[target];
if (target === 0) return [];
if (target < 0) return null;
let smallest = null;
for (let e of arr) {
if (howSum(target - e, arr, memo) !== null) {
let result = howSum(target - e, arr, memo);
// result.push(e);
result = [...result, e];
if (smallest === null …Run Code Online (Sandbox Code Playgroud) javascript arrays algorithm dynamic-programming ecmascript-6