blog

LeetCodeの問題解決:1.2つの数字の和、JavaScript、HashMapの単語の走査、詳細なメモ

配列を繰り返し、target - nums[index]とindexを毎回保存します。 次に配列を繰り返し、Mapにtarget - nums[index]があれば、2つの数値の和をtargetとして...

Aug 8, 2020 · 1 min. read
シェア

元の質問へのリンク

問題解決のアイデア

  1. 配列を繰り返し処理し、target - nums[index]とindexを1つずつ保存します。
  2. 次にトラバースするとき、Mapにtarget - nums[index]があれば、2つの数字の和をtargetとして見つけたことになります。
  3. この時点で、マップから直接、保存されたインデックスを取り出すことができ、インデックスの組み合わせの現在の値がその結果です。
/**
 * @param {number[]} nums
 * @param {number} target
 * @return {number[]}
 */
var twoSum = function (nums, target) {
 // Mapを使用して、トラバースしたインデックスの結果を保存する。
 let map = new Map();
 for (let index = 0; index < nums.length; index++) {
 // 現在の値がMapに保存されているかどうかを判断し、保存されていれば、2つの数値を足すと次の値になることがわかったことになる。target
 if (typeof map.get(nums[index]) === 'number') {
 // 保存されたインデックスと現在値の和を返す。index
 return [map.get(nums[index]), index];
 }
 // 現在値とターゲットとの差、および現在値のインデックスをMap
 // にトラバースする場合target - nums[index]2つの数値の和をターゲットとして見つけたら、現在のインデックスを直接取り出すことができる。
 map.set(target - nums[index], index);
 }
};
Read next

テーブル・ピンボールにFlutterを使う?描画APIについて話す

この記事はFlutterでCanvasとAPIを使う例です。 画面を長押しすると、ボールのスタート/ストップが自動的に切り替わります。 CanvasとAPI。 方向移動の位置更新。 ユーザージェスチャーのリスナー 次に、feature teardownに記載されている6つの具体的な機能をステップバイステップで実装します。 プログラム内のランダム色ジェネレータ...

Aug 7, 2020 · 9 min read