@FromHellWithLove

Реализация алгоритма нахождения минимальной суммы непрерывной последовательности, есть варианты?

Нужно написать алгоритм нахождения минимальной суммы непрерывной последовательности n чисел в массиве размером m Example: arr = [ 5, 7, 2, 3, 5, 12, 1, 1, 5] (m = 9) при n = 2 ответ - [1, 1] при n = 3 ответ - [1, 1, 5].
Есть варианты?
  • Вопрос задан
  • 195 просмотров
Решения вопроса 1
0xD34F
@0xD34F
function getMinSum(arr, n) {
  let sum = 0;
  let minSum = 0
  let index = 0;

  for (let i = 0; i < n; sum += arr[i++]) ;
  minSum = sum;

  for (let i = n; i < arr.length; i++) {
    sum -= arr[i - n] - arr[i];
    if (sum < minSum) {
      minSum = sum;
      index = i - n + 1;
    }
  }

  return {
    sum: minSum,
    seq: arr.slice(index, index + n),
  };
}
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы