JavaScript 中最大和的子集


我們需要編寫一個 JavaScript 函式,其中包含一個整數陣列。我們的函式需要查詢具有最大和的非相鄰元素子集。

最後,該函式應計算並返回該子集的總和。

例如 -

如果輸入陣列為 -

const arr = [3, 5, 7, 8, 10];

則輸出應為 20,因為數字的非相鄰子集將為 3、7 和 10。

示例

此程式碼將是 -

const arr = [3, 5, 7, 8, 10];
const maxSubsetSum = (arr = []) => {
   let min = −Infinity
   const helper = (arr, ind) => {
      if ( ind < 0 ){
         return min
      };
      let inc = helper(arr, ind−2);
      let notInc = helper(arr, ind−1);
      inc = inc == min ? arr[ind] : Math.max(arr[ind], arr[ind] + inc);
      return Math.max( inc, notInc );
   };
   return helper(arr, arr.length − 1);
};
console.log(maxSubsetSum(arr));

輸出

並且控制檯中的輸出將為 -

20

更新於: 24-11-2020

289 次瀏覽

開始你的 職業

透過完成課程獲得認證

開始
廣告
© . All rights reserved.