合計がターゲットの合計に等しい配列内の3つの要素のグループを見つける方法JavaScript
Numbersの配列とtargetsumを受け取るthreeSum()などの関数を作成する必要があります。配列内に合計で目標の合計となる3つの数値が存在するかどうかをチェックします。配列内にそのような数値が存在する場合は、配列内のインデックスを返す必要があります。そうでない場合は、-1を返す必要があります。
アプローチ
アプローチは単純です。最初に関数twoSum()を記述します。この関数は、配列とターゲットの合計を受け取り、線形時間と空間を使用して、合計がターゲットの合計に1になる2つの数値のインデックスを返します。
次に、実際の関数threeSum()を記述します。この関数は、配列内の各要素を反復処理して、twoSum()番号に追加すると実際のターゲットに加算できる3番目の要素のインデックスを見つけます。
したがって、このように、O(N ^ 2)時間で3つの要素を見つけることができます。このためのコードを書いてみましょう-
例
const arr = [1,2,3,4,5,6,7,8]; const twoSum = (arr, sum) => { const map = {}; for(let i = 0; i < arr.length; i++){ if(map[sum-arr[i]]){ return [map[sum-arr[i]], i]; }; map[arr[i]] = i; }; return -1; }; const threeSum = (arr, sum) => { for(let i = 0; i < arr.length; i++){ const indices = twoSum(arr, sum-arr[i]); if(indices !== -1 && !indices.includes(i)){ return [i, ...indices]; }; }; return -1; }; console.log(threeSum(arr, 9)); console.log(threeSum(arr, 8)); console.log(threeSum(arr, 13)); console.log(threeSum(arr, 23));
出力
コンソールの出力は-
になります[ 0, 2, 4 ] [ 0, 2, 3 ] [ 0, 4, 6 ] -1
-
JavaScriptで配列を空にするにはどうすればよいですか?
JavaScriptで配列を空にするには、変数を空に設定します: arr = [] 例 次のコードを実行して、JavaScriptで配列を空にすることができます: <html> <head> <title>JavaScript Arrays</title> </head> <body> <script> &nb
-
複数の値でJavaScript配列の要素を見つける方法は?
以下は、JavaScript配列の要素を複数の値で検索するコードです- 例 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title>Document</title> <style> &nbs