Работа с массивом js

Есть массив из n элементов. Надо посчитать суммы всех комбинаций из k элементов этого массива.

Допустим есть массив

[0 , 1 , 2 ,3 , 4]

и к примеру надо посчитать суммы из 3x элементов этого массива -

[0,1,2] , [0,1,3] , [0,1,4]

и так далее и найти наибольшую из них. Как это оформить на языке js.


Ответы (1 шт):

Автор решения: teran

максимальная сумма достигается путем суммирования максимальных элементов. Следовательно, надо либо отсортировать массив и взять k-элемнтов (первых или последних в зависимости от порядка сортировки) и сложить их, либо что будет более эффективно на больших массивах - не сортировать, а просто найти k-максимумов.

const data = [1,-1,2,3,0,5],
      k = 3;


let result = data.sort().slice(-k).reduce((acc,v) => acc+v, 0);

console.log(result);

→ Ссылка