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

JavaScript:配列のシーケンスがほぼ増加しているかどうかを確認します


整数のシーケンスを配列として指定し、配列から1つ以下の要素を削除することで、厳密に増加するシーケンスを取得できるかどうかを判断します。

シーケンスa0、a1、...、anは、a0

シーケンス=[1、3、2、1]の場合、出力は-

になります。
almostIncreasingSequence(sequence) = false.

この配列には、厳密に増加するシーケンスを取得するために削除できる要素は1つもありません。

シーケンス=[1、3、2]の場合、出力は-

になります。
almostIncreasingSequence(sequence) = true.

配列から3を削除して、厳密に増加するシーケンス[1、2]を取得できます。または、2を削除して、厳密に増加するシーケンス[1、3]を取得することもできます。

以下はコードです-

const arr1 = [3, 5, 67, 98, 3];
const arr2 = [4, 3, 5, 67, 98, 3];
const almostIncreasingSequence = sequence => {
   let removed = 0;
   let i = 0;
   let prev = -Infinity;
   while(removed < 2 && i < sequence.length) {
      if(sequence[i] > prev) {
         prev = sequence[i];
      }else{
         prev = Math.min(prev, sequence[i]);
         removed++;
      }
      i++;
   }
   return removed < 2;
};
console.log(almostIncreasingSequence(arr1));
console.log(almostIncreasingSequence(arr2));

出力

これにより、コンソールに次の出力が生成されます-

true
false

  1. 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

  2. JavaScriptで配列を昇順に変換する

    シーケンスの増加 (0 <=i <=n-2)のようにすべてのi(0ベース)に対してarr [i] <=arr [i + 1]が成り立つ場合、配列を増加として定義します。 問題 最初で唯一の引数として、整数の配列arrを受け取るJavaScript関数を作成する必要があります。 この関数は、配列の最大1つの要素を変更することで、この配列を増加する配列に変換できるかどうかを判断する必要があります。 そうすることができれば、trueを返し、そうでない場合はfalseを返す必要があります。 たとえば、関数への入力が 入力 const arr = [8, 3, 3, 7, 9]; 出力