ホームページ >ウェブフロントエンド >jsチュートリアル >JavaScript プログラムは、配列を K 回右回転させた後、M 番目の要素を見つけます

JavaScript プログラムは、配列を K 回右回転させた後、M 番目の要素を見つけます

WBOY
WBOY転載
2023-09-05 11:05:07950ブラウズ

JavaScript 程序在数组右旋转 K 次后查找第 M 个元素

私たちは、k 回右回転された配列の m 番目の要素を見つける JavaScript プログラムを作成しています。まず、配列 m と k の入力を取得します。次に、ループを使用して正しい回転を実行します。ループの各反復で、配列の最後の要素を最初の位置に移動します。このループを k 回継続して、回転された配列を取得します。最後に、回転された配列の m 番目の要素を結果として返します。

###方法###

配列を k 回右回転して m 番目の要素を見つける方法は、次のように分解できます -

    k 回転後の m 番目の要素の実際の位置、つまり (m-k) % n を計算します。n は配列の長さです。
  • 計算された位置が負であるかどうかを確認します。その場合は、n を追加することで正の位置に変換できます。
  • 配列内の計算された位置にある要素を返します。
  • このソリューションを最適化するには、モジュロ演算子を使用して計算された位置を配列の範囲内に保つことができるため、負の値をチェックする必要がなくなります。
  • 最終位置の計算とその位置にある要素の取得は定数時間の操作であるため、この解の時間計算量は O(1) です。
  • ソリューションでは追加のデータ構造が使用されないため、空間複雑度は O(1) です。
  • ###例###
  • これは、配列を k 回右回転した後に m 番目の要素を見つける JavaScript プログラムの例です。
リーリー

イラスト

findElement
    この関数は、配列
  • arr

    、回転数 k、および検索する m 番目の要素を受け取ります。 p>k = k % arr.length

  • 行は、大きな
  • k

    値を処理した後に配列で実行される実際の回転数を計算します。これは、配列の長さを超えて配列を回転してもその位置が変わらないため、配列の長さを k で法定することで実際に実行される回転数が得られるために行われます。 Line

    return arr[(arr.length - k m - 1) % arr.length];
  • k 回転後の m 番目の要素の位置を計算します。式
  • arr.length - k

    は k 回転後の配列の開始位置を示し、次に m - 1 は m 番目の要素の位置を示し、最後に AND モジュロを取得します。配列の長さによって、範囲外になった場合に位置が配列の末尾で折り返されることが保証されます。 最後に、プログラムは

    findElement
  • 関数を呼び出し、結果を記録します。この例では、出力は 4 になります。

以上がJavaScript プログラムは、配列を K 回右回転させた後、M 番目の要素を見つけますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はtutorialspoint.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。