前端小白---學習之旅前端
思路解析(組合求和)
數組元素 [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; }