using System.Collections;
using System.Collections.Generic;
public static void Main()
int[] test1Nums = {2,7,11,15};
PrintArray(TwoSum(test1Nums, test1Target));
int[] test2Nums = {3,2,4};
PrintArray(TwoSum(test2Nums, test2Target));
PrintArray(TwoSum(test3Nums, test3Target));
public static void PrintArray(int[] array)
Console.WriteLine("[{0}]", string.Join(", ", array));
public static int[] TwoSum(int[] nums, int target)
var numsDictionary = new Dictionary<int, int>();
for (var i = 0; i < nums.Length; i++)
complement = target - nums[i];
if (complement > 0 && numsDictionary.TryGetValue(complement, out index))
return new int[] { index, i };
if (numsDictionary.ContainsKey(nums[i]) == false)
numsDictionary.Add(nums[i], i);