ホームページ  >  記事  >  ウェブフロントエンド  >  合計が指定された値より小さいトリプルを計算する JavaScript プログラム

合計が指定された値より小さいトリプルを計算する JavaScript プログラム

PHPz
PHPz転載
2023-09-24 22:37:021494ブラウズ

JavaScript 程序计算总和小于给定值的三元组

合計が指定の値未満であるトリプルの数を数える JavaScript プログラムを作成します。この問題は、配列をソートし、2 つのポインターを使用して可能な組み合わせを確認することで解決できます。まず、配列を昇順に並べ替えます。次に、配列内の各要素について、2 つのポインターを使用して、合計が指定された値より小さいトリプルがあるかどうかを確認します。このようなトリプルの数が、追跡されるカウントになります。

さらに、指定された値以下のトリプルの合計に基づいてカウントとポインターを更新します。このようにして、O(n^2) の時間計算量で問題を効率的に解くことができます。これは、将来、特定の条件を満たす特定の組み合わせの数を見つける必要がある問題が発生した場合に覚えておくと非常に便利なテクニックです。

最後に、合計が指定された値より小さいトリプルの数を返します。

###方法###

    まず、指定された数値配列を昇順に並べ替えます。
  • 3 つの変数 (left、right、count) を初期化します。
  • 次に、2 ポインター方式を使用します。左ポインターは 0 から始まり、右ポインターは終端から始まります。
  • 反復ごとに、現在のトリプレット (左を指す要素、右を指す要素、現在の要素) の合計を計算します。
  • 合計が指定された値より小さい場合は、カウントと左ポインタをインクリメントします。
  • 合計が指定された値より大きい場合は、右ポインタをデクリメントします。左ポインタが右ポインタより小さくなるまで、このプロセスを繰り返します。
  • ###例###
  • これは、合計が指定された値未満であるトリプルの数を数える JavaScript プログラムの完全な例です -
リーリー

イラスト

countTriplets
    関数は、配列
  • arr

    と値 sum を引数として受け取ります。

    count
  • 変数は、合計が
  • sum 未満であるトリプルの数を追跡します。

    arr
  • sort 関数を使用して昇順に並べ替えます。
  • 外側のループ

    for (let i = 0; i 配列、
  • left

    および right## を反復処理します。 # ポインター i の次のインデックスと配列の最後のインデックスにそれぞれ初期化されます。 while (left ループは、

  • left
  • ポインタが

    right ポインタ以上になるまで続きます。 while (left ループは、左ポインタが右ポインタ以上になるまで継続します。

  • while

    ループの各反復で、
  • arr[i]、arr[left]、
  • 、および

    arr[right] が計算されます。その合計が sum 以上の場合、right ポインタはデクリメントされます。合計が sum より小さい場合、countleftright の間に残っている要素の数だけ増分されます。 > ポインタ、left ポインタがインクリメントされます。 関数は、合計が sum 未満であるトリプルの数を表す count 変数を返します。

以上が合計が指定された値より小さいトリプルを計算する JavaScript プログラムの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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