[LeetCode] #1 Two Sum

#1 Two Sum

Question

Given an array of integers, return indices of the two numbers such that they add up to a specific target. You may assume that each input would have exactly one solution, and you may not use the same element twice.

Given nums = [2, 7, 11, 15], target = 9,
Because nums[0] + nums[1] = 2 + 7 = 9,
return [0, 1]

My C# Solution

public class Solution {
    public int[] TwoSum(int[] nums, int target) {
        var mapping = new Dictionary<int, int>();
        for(var i = 0; i < nums.Length; i++)
        {
            var key = target - nums[i];
            if (mapping.ContainsKey(key))
            {
                return new int[] { mapping[key], i };
            }
            else
            {
                if (!mapping.ContainsKey(nums[i]))
                {
                    mapping.Add(nums[i], i);                   
                }
            }
        }
        throw new Exception("target not found.");
    }
}