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;
        }
    }


最後まで読んでいただきありがとうございます。記事を読んで何か感じたり、思ったりしていただけたら、’すき’していただけたら幸いです。