using System.Collections.Generic;
public static void Main()
Console.WriteLine("GetTargetSum: [1,2,3,9] sum = 8: " + String.Join(",", GetTargetSum(new int[4] { 1,2,3,9 }, 8)));
Console.WriteLine("GetTargetSum: [1,2,4,4] sum = 9: " + String.Join(",", GetTargetSum(new int[4] { 1,2,4,4 }, 9)));
public static int[] GetTargetSum(int[] nums, int sum)
Dictionary<int, int> complements = new Dictionary<int, int>();
int[] result = new int[2];
for (int i = 0; i < nums.Length; i++)
int currentComplement = sum - nums[i];
if (complements.ContainsKey(nums[i]))
result[0] = nums[complements[nums[i]]];
else if (complements.ContainsKey(currentComplement))
complements.Add(currentComplement, i);