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

JavaScriptを使用して最長の非負の合計シーケンスを見つける


問題

整数のシーケンスを含む配列を受け取るJavaScript関数を作成する必要があります。各要素には、-1から1の範囲の可能な値が含まれます。

この関数は、そのシーケンスの最長のサブセクションのサイズを合計がゼロ以上で返す必要があります。

以下はコードです-

const arr = [-1, -1, 0, 1, 1, -1, -1, -1];
const longestPositiveSum = (arr = []) => {
   let sum = 0;
   let maxslice = 0;
   let length = arr.length;
   const sumindex = [];
   let marker = length * 2 + 1;
   for(let i = 0; i < length * 2; i++){
      sumindex[i] = marker;
   }
   for(let i = 0; i < arr.length; i++){
      sum += arr[i];
      if (sum >= 0)
         maxslice = i + 1;
      else if (sumindex[sum+length] != marker)
         maxslice = Math.max(maxslice, i - sumindex[sum+length]);
      else
         sumindex[sum+length] = i;
   };
   return maxslice;
};
console.log(longestPositiveSum(arr));

出力

5

  1. JavaScriptを使用して配列内のすべての一般的な要素の合計を見つける

    問題 3つの数値配列を受け取るJavaScript関数を作成する必要があります。この関数は、3つの配列すべてに共通するすべての数値の合計を返す必要があります。 例 以下はコードです- const arr1 = [4, 4, 5, 8, 3]; const arr2 = [7, 3, 7, 4, 1]; const arr3 = [11, 0, 7, 3, 4]; const sumCommon = (arr1 = [], arr2 = [], arr3 = []) => {    let sum = 0;    for(let i = 0; i

  2. JavaScriptを使用して配列内のフィボナッチ数列を検索する

    フィボナッチ数列: シーケンスX_1、X_2、...、X_nは、次の場合にフィボナッチです。 =3 X_i + X_ {i + 1} =X_ {i+2}すべてのi+2 <=n 問題 最初で唯一の引数として、数値の配列arrを受け取るJavaScript関数を作成する必要があります。この関数は、配列arrに存在する最長のフィボナッチサブシーケンスの長さを見つけて返す必要があります。 サブシーケンスは、残りの要素の順序を変更せずに、arrから任意の数の要素(なしを含む)を削除することにより、別のシーケンスarrから派生します。 たとえば、関数への入力が 入力 con