https://leetcode.com/problems/two-sum/
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.
Example:
Given nums = [2, 7, 11, 15], target = 9, Because nums[0] + nums[1] = 2 + 7 = 9, return [0, 1].
public int[] TwoSum(int[] nums, int target)
{
int[] result = new int[2];
var map= new Hashtable();
int len = nums.Length;
for (int i = 0; i < len; i++)
{
if (map.ContainsKey(target - nums[i]))
{
result[1] = i;
result[0] = (int)map[target-nums[i]];
return result;
}
if (!map.ContainsKey(nums[i]))
map.Add(nums[i], i);
}
return result;
}