トピック:
整数配列 nums と整数ターゲット値 target が与えられた場合、その合計が配列内のターゲット値 target である 2 つの整数を見つけ、それらの配列添字を返します。各入力に対する答えは 1 つだけであると想定できます。ただし、配列内の同じ要素が回答に繰り返し現れることはありません。回答は任意の順序で返すことができます。
数 aa までトラバースすると、targettarget から aa を引いて bb が得られ、ハッシュ テーブルに bb が存在する場合は、結果を直接返すことができます。bb が存在しない場合は、aa をハッシュ テーブルに格納して、後続のトラバーサル番号で使用できるようにする必要があります。
var twoSum = function (nums, target) {
let map = new Map()
for (var i = 0; i < nums.length; i++) {
// 算出当前数字和目标数字的差
// 若哈希表中存在该差值
if (map.has(target - nums[i])) {
// 则返回当前索引值和差值索引值,即返回结果
return [map.get(target - nums[i]), i]
} else {
// 否则就将当前值作为key,索引作为value存入哈希表
map.set(nums[i], i)
}
}
return []
};
console.log(twoSum([3, 2, 4], 6))
結果: ターゲット値の合計に対応するインデックスを出力します