javascript 組合求和

前端小白---學習之旅前端

思路解析(組合求和)

數組元素 [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;

}
相關文章
相關標籤/搜索