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

JavaScriptで昇順配列をチェックする


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

注:シーケンスa0、a1、...、aは、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の配列のスプレッド演算子

    Spread(…)構文を使用すると、0個以上の引数が期待される場所でiterablelike配列を展開できます。これにより、関数に配列としていくつかのパラメーターを渡すことができます。 以下は、JavaScriptで配列のスプレッド演算子を実装するためのコードです- 例 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width

  2. JavaScriptで同様に配列の2乗をチェックする

    問題 最初の引数と2番目の引数として、それぞれarr1とarr2の2つの数値配列を受け取るJavaScript関数を作成する必要があります。 arr2のすべての要素が、出現順序に関係なくarr1の要素の二乗である場合にのみ、関数はtrueを返す必要があります。 たとえば、関数への入力が-の場合 入力 const arr1 = [4, 1, 8, 5, 9]; const arr2 = [81, 1, 25, 16, 64]; 出力 const output = true; 例 以下はコードです- const arr1 = [4, 1, 8, 5, 9]; const arr2