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

JavaScriptで隣接する要素よりも大きい要素を検索する


最初で唯一の引数として数値の配列を受け取るJavaScript関数を作成する必要があります。

関数は、配列からそのような数値を1つ見つけて返す必要があります。これらの数値は、すぐ右側の数値とすぐ左側の数値の両方よりも大きくなります。配列にそのような要素が複数存在する場合、関数はそれらのいずれかを返す必要があります。

例-

入力配列が-

の場合
const arr = [3, 6, 7, 9, 8, 2, 5];

その場合、出力は-

になります。
const output = 9;

質問ではピーク要素を見つける必要があるため、バイナリ検索アルゴリズムの微調整バージョンを使用できます。

同じための手順は次のようになります-

  • 任意の要素を見てください。

  • 次の要素と前の要素の両方が現在よりも小さい場合、解決策を見つけて、現在のインデックスを返します。

  • 次の要素が現在よりも大きい場合は、右側にピークがあり、右側を再帰的に見る必要があります。

  • 前の要素が現在よりも大きい場合は、左側にピークがあり、左側を再帰的に見る必要があります。

以下はコードです-

const arr = [3, 6, 7, 9, 8, 2, 5];
const greaterThanAdjacent = (arr = [], start = 0, end = arr.length) => {
   let mid = start + Math.floor((end - start) / 2);
   let curr = arr[mid];
   let prev = mid-1 < 0 ? -Infinity : arr[mid-1];
   let next = mid+1 > arr.length-1 ? -Infinity : arr[mid+1];
   if (curr > prev && curr > next){
      return arr[mid];
   }
   if (curr < next){
      return greaterThanAdjacent(arr, mid+1, end);
   }
   if (curr > next){
      return greaterThanAdjacent(arr, start, mid-1);
   }
   return null;
};
console.log(greaterThanAdjacent(arr));

出力

以下はコンソール出力です-

9

  1. JavaScriptで次に大きい要素までの距離を見つける

    問題 最初で唯一の引数として、数値の配列arrを受け取るJavaScript関数を作成する必要があります。 この関数は、対応する各要素が現在の要素よりも次に大きい要素までの距離である入力の新しい配列を作成する必要があります。現在の要素の右側に大きい要素がない場合は、対応する要素に対して0をプッシュする必要があります。 res配列の要素であり、最後にこの配列を返す必要があります。 たとえば、関数への入力が 入力 const arr = [12, 13, 14, 11, 16, 10, 12, 17, 19, 18]; 出力 const output = [1, 1, 2, 1, 3

  2. Python –前の要素よりも多い要素の数でマトリックスを並べ替える

    前の要素よりも多い要素の数に基づいて行列を並べ替える必要がある場合は、関数を使用してリスト内包法と「len」メソッドを使用します。 以下は同じのデモンストレーションです- 例 def fetch_greater_freq(row):    return len([row[idx] for idx in range(0, len(row) - 1) if row[idx] < row[idx + 1]]) my_list = [[11, 3, 25, 99, 10], [5, 3, 25, 4], [77, 11, 5, 3, 77, 77], [11, 3, 2