Computer >> Máy Tính >  >> Lập trình >> Javascript

Tập hợp con có tổng tối đa trong JavaScript

Chúng tôi được yêu cầu viết một hàm JavaScript nhận một mảng các số nguyên. Hàm của chúng ta được yêu cầu tìm tập hợp con của các phần tử không liền kề với tổng lớn nhất.

Và cuối cùng, hàm sẽ tính toán và trả về tổng của tập hợp con đó.

Ví dụ -

Nếu mảng đầu vào là -

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

Khi đó đầu ra phải là 20 vì tập con không liền kề của các số sẽ là 3, 7 và 10.

Ví dụ

Mã cho điều này sẽ là -

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));

Đầu ra

Và đầu ra trong bảng điều khiển sẽ là -

20