ホームページ >ウェブフロントエンド >jsチュートリアル >指定された配列の回転のみを許可して、Sum( i*arr) の最大値を見つける JavaScript プログラム
数学的手法を使用して、インデックスと配列内の要素の値の合計の最大値を見つけます。配列を回転させることで、最大の積を持つインデックスに配列の最大値を配置することで、この合計を最大化できます。使用するアルゴリズムでは、インデックスと要素値の積の合計を求め、その合計と配列の長さとインデックス値の合計の積との差をその合計に加算します。
将来的には、このアルゴリズムをさまざまな配列に適用し続けて、インデックスの合計と、回転のみを許可する要素値の積の最大値を見つけます。このソリューションは、配列を 1 回通過するだけで済み、時間計算量が O(n) であるため、非常に効率的です。このアルゴリズムを使用すると、配列内の要素のインデックスと値の積の最大合計を迅速かつ簡単に見つけることができます。
###方法###
###例###
b の合計を取得することで取得できる最大合計を返します。 > 回転ごとに 。 変数
nVariable
arrSum変数
currValの合計を格納し、0 に初期化されます。 最初のループは、配列内のすべての要素の合計と、最初の回転の
i * arr[i]変数
maxValに初期化されます。 2 番目のループは配列を繰り返し回転し、回転ごとに i * arr[i] の合計を更新します。現在の回転の
i * arr[i]currVal
合計と sum >i * の差を加算することによって更新されます。 arr[ i] は最後の回転に使用されます。差は、arrSum から n * arr[n - j] を減算して計算されます。 各スピンの
currVal関数を使用して maxVal に保存されます。 最後に、
maxVal の値を答えとして返します。
以上が指定された配列の回転のみを許可して、Sum( i*arr) の最大値を見つける JavaScript プログラムの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。