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

JavaScriptで特定の数に合計される一意の数のペアのすべてのインデックスの最小の合計を見つけます


最初の引数として数値の配列を取り、2番目の引数としてターゲットの合計を受け取る関数を作成する必要があります。次に、配列をループして、各値を相互に追加します(それ自体とそれ自体を除く)。

そして、ループされた2つの値の合計がターゲットの合計に等しく、値のペアが以前に検出されたことがない場合、それらのインデックスを記憶し、最後に、記憶されたすべてのインデックスの完全な合計を返します。

配列が-

の場合
const arr = [1, 4, 2, 3, 0, 5];

そして合計は-

です
const sum = 7;

その場合、出力は11になります。なぜなら、

4 + 3 = 7
5 + 2 = 7

インデックス-

4 [index: 1]
2 [index: 2]
3 [index: 3]
5 [index: 5]

つまり、

1 + 2 + 3 + 5 = 11

このためのコードは-

になります
const arr = [1, 4, 2, 3, 0, 5];
const findIndexSum = (arr = [], sum = 0) => {
   let copy = arr.slice(0);
   const used = [];
   let index = 0, indexFirst = 0, indexSecond, first, second;
   while (indexFirst < copy.length){
      indexSecond = indexFirst + 1;
      while(indexSecond < copy.length){
         first = copy[indexFirst];
         second = copy[indexSecond];
         if (first + second === sum){
            used.push(first, second);
            copy = copy.filter(el => first !== el && second !== el );
            indexFirst--;
            break;
         }
         indexSecond++;
      }
      indexFirst++;
   };
   const indexSum = used.sort().reduce((acc, val, ind) => {
      const fromIndex = ind === 0 || val !== used[ind - 1] ? 0 : index + 1 index = arr.indexOf(val, fromIndex);
      return acc + index;
   }, 0);
   return indexSum;
};
console.log(findIndexSum(arr, 7));

出力

そして、コンソールの出力は-

になります
11

  1. C++を使用して配列内の一意のペアの数を見つける

    C ++の配列構文でいくつかの一意のペアを作成するには、適切な知識が必要です。一意のペアの数を見つける際に、特定の配列内のすべての一意のペアをカウントします。つまり、各ペアが一意である必要がある場所に、すべての可能なペアを形成できます。例- Input : array[ ] = { 5, 5, 9 } Output : 4 Explanation : The number of all unique pairs are (5, 5), (5, 9), (9, 5) and (9, 9). Input : array[ ] = { 5, 4, 3, 2, 2 } Output : 16 解決策

  2. Pythonで指定された配列内のすべての適切なインデックスを検索します

    数値の配列Aがあるとすると、この配列のすべてのインデックスを見つけて、配列からi番目の要素を削除した後、その配列が適切な配列になるようにする必要があります。そのことを覚えておく必要があります- 適切な配列とは、他のすべての要素の合計に等しい要素を持つ配列です。 1ベースのインデックスがここで使用されます。 したがって、入力が[10、4、6、2]の場合、出力は[1,4]になり、A [1]を削除すると、配列は[4、6、2]のようになります。 6 =4 + 2なので、良いです。 A [4]を削除すると、配列は[10、4、6]のようになり、10 =4+6のようになります。 これを解決するには、