Javascript
 Computer >> コンピューター >  >> プログラミング >> Javascript

JavaScriptの配列のn個の連続する要素の最大合計


最初の引数としてarrなどの数値の配列を取り、2番目の引数としてnumなどの数値を受け取るJavaScript関数を作成する必要があります。

2番目の引数は、常に配列の長さ以下になります。この関数は、最大の合計である配列から連続する要素の数を見つけて返す必要があります。

例-

入力が-

の場合
const arr = [2,5,3,4,6];
const num = 2

上記の入力の出力は次のようになります-

const output = 10

6と4は、合計が最大になる2つの連続した要素だからです。

この問題は、線形時間と一定空間のソリューションでスライディングウィンドウ手法を使用して解決できます。

以下はコードです-

const arr = [2, 5, 3, 4, 6];
// helper function to find sum of an array
const findSum = arr => arr.reduce((acc, val) => acc + val);
const maximumSum = (arr = [], num = 1) => {
   let left = 0, right = left + num;
   let sum = findSum(arr.slice(left, right));
   for(; right <= arr.length; right++, left++){
      sum = Math.max(findSum(arr.slice(left, right)), sum);
   };
   return sum;
};
console.log(maximumSum(arr, 2));
console.log(maximumSum(arr, 3));

出力

以下はコンソールでの出力です-

10
12

  1. JavaScriptのサブ配列の最大連続合計

    正と負の整数の配列の配列を受け取るJavaScript関数を作成する必要があります。配列には負の要素も含まれているため、連続する要素の合計は負または正になる可能性があります。 この関数は、合計が最大になる配列から連続する要素の配列を選択する必要があります。最後に、関数はその配列を返す必要があります。 例- 入力配列が-の場合 const arr = [-2, -3, 4, -1, -2, 1, 5, -3]; その場合、可能な最大合計は7であり、出力サブアレイは-である必要があります。 const output = [4, -1, -2, 1, 5]; 例 以下はコードです- co

  2. JavaScriptで配列内の要素の目的の合計を見つける

    このような数値の配列があるとします- const arr = [1, 2, 1, 3, 2]; 最初の引数としてそのような配列を1つ受け取るJavaScript関数を作成する必要があります。 2番目の引数は、目的の合計を表す数値になります。これを合計と呼びます。3番目と最後の引数も、配列から目的の合計を合計する必要がある数値の数を表す数値になります(要素の繰り返し)、この番号をnumと呼びましょう。 関数は最終的に、目的の合計と長さを持つそのようなすべてのグループの数を返す必要があります。 したがって、入力値が-の場合 const arr = [1, 2, 1, 3, 2]; const