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

JavaScriptのバイナリ配列で連続する1の最大数を見つける


唯一の引数としてバイナリ配列(0または1のみで構成される配列)を受け取るJavaScript関数を作成する必要があります。

関数は、1つだけで構成される配列の連続するサブ配列の長さを見つけて、それを返す必要があります。

例-

入力配列が-

の場合
const arr = [1, 0, 1, 1, 1, 0, 1, 0, 1, 1, 1, 1, 0, 1];

その場合、出力は-

になります。
const output = 4;

スライディングウィンドウアルゴリズムを使用して、1つだけで構成される最大のウィンドウ(最大サイズ)をキャプチャします。

このためのコードは-

になります
const arr = [1, 0, 1, 1, 1, 0, 1, 0, 1, 1, 1, 1, 0, 1];
const findMaxConsecutiveOnes = (arr = []) => {
   let left = 0;
   let right = 0;
   let max = 0;
   while (right < arr.length) {
      if (arr[right] === 0) {
         if (right - left > max) {
            max = right - left
         };
         right++;
         left = right;
      } else {
         right++
      };
   };
   return right - left > max ? right - left : max;
}
console.log(findMaxConsecutiveOnes(arr));

出力

そして、コンソールの出力は-

になります
4

  1. JavaScriptで2つの配列から最大数を見つける

    問題 1番目と2番目の引数として2つの数値arr1とarr2を表す1桁の数値の2つの配列を受け取るJavaScript関数を作成する必要があります。関数の3番目の引数は数値になります num (num <= length of arr1 + length of arr2) この関数は、長さnumの1桁の数値の新しい配列を返す必要があります。これは、それ自体が数値を表します。また、この数は、両方の配列の要素を使用して作成できる最大数である必要があります。唯一の条件は、同じ配列の要素の相対的な順序を維持する必要があることです。 たとえば、関数への入力が-の場合 const arr1 =

  2. JavaScriptで配列内の最初の連続していない番号を見つける

    問題 数値の配列を受け取るJavaScript関数を作成する必要があります。関数は、前の要素の自然な後継ではない配列から最初の要素を返す必要があります。 これは、配列にそのような要素が少なくとも1つ存在する場合、前の要素の+1ではない要素を返す必要があることを意味します。 例 以下はコードです- const arr = [1, 2, 3, 4, 6, 7, 8]; const findFirstNonConsecutive = (arr = []) => {    for(let i = 0; i < arr.length - 1; i++){