Leecode 1.Two Sum 備忘録
最初に自分で考えたコードを書いた。(これは間違いである。)言語はC#、速度は200ms。

上記のコードは間違いだった。中の配列が[3,2,3]のようなとき、すなわち、配列で合計値が隣り合ってない時は、上のコードは使えないのだ。
C#は以下のコードがアルゴリズムのハッシュ値を使用したコードになるようだ。テストの速度は195msだった。
public class Solution {
public int[] TwoSum(int[] nums, int target) {
var pairs = new Dictionary<int, int>();
for(int i = 0; i < nums.Length; i++){
if(pairs.ContainsKey(target - nums[i])){
//該当する回答を配列で返す
return new int[] { pairs[target - nums[i]], i };}
else{
//ディクショナリに Key:nums[i], Value:i を追加
pairs.TryAdd(nums[i], i);}
}
return default;
}
}
いいなと思ったら応援しよう!
