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

JavaScriptで一般的なサブアレイの最大長を見つける


問題

最初の引数と2番目の引数として、それぞれarr1とarr2の2つのリテラル配列を受け取るJavaScript関数を作成する必要があります。

この関数は、両方の配列に表示されるサブ配列の最大長を返すことになっています。

たとえば、関数への入力が

入力

const arr1 = [1, 2, 3, 2, 1];
const arr2 = [3, 2, 1, 4, 7];

出力

const output = 3;

出力の説明

最大長の繰り返しサブアレイは[3、2、1]です。

以下はコードです-

const arr1 = [1, 2, 3, 2, 1];
const arr2 = [3, 2, 1, 4, 7];
const maximumLength = (arr1 = [], arr2 = []) => {
   const dp = new Array(arr1.length + 1).fill(0).map(() => new Array(arr2.length + 1).fill(0))
   for (let i = arr1.length - 1; i >= 0; i--) {
      for (let j = arr2.length - 1; j >= 0; j--) {
         if (arr1[i] === arr2[j]) {
            dp[i][j] = dp[i + 1][j + 1] + 1
         } else {
            dp[i][j] = 0
         }
      }
   };
   return dp.reduce((acc, items) => Math.max(acc, ...items), 0)
}
console.log(maximumLength(arr1, arr2));

出力

3

  1. JavaScriptを使用した配列内の山​​の最大長

    山のサブシーケンス 次のプロパティが当てはまる場合、(arrの)サブアレイサブを山と呼びます- =3 sub [0]

  2. JavaScriptのサブアレイの特定の長さの最大平均

    問題 最初の引数として整数の配列arrを取り、2番目の引数として数値numを受け取るJavaScript関数を作成する必要があります。 この関数は、最大の平均値を持つ、指定された長さnumの連続するサブ配列を見つける必要があります。そして、最大平均値を出力する必要があります。 たとえば、関数への入力が 入力 const arr = [1, 12, -5, -6, 50, 3]; const num = 4; 出力 const output = 12.75; 出力の説明 目的のサブアレイは[12、-5、-6、50]であるため 例 以下はコードです- const arr =