描述:
給定一個(gè)整數(shù)數(shù)組 nums 和一個(gè)目標(biāo)值 target充坑,請(qǐng)你在該數(shù)組中找出和為目標(biāo)值的那 兩個(gè) 整數(shù)吵聪,并返回他們的數(shù)組下標(biāo)硫嘶。
你可以假設(shè)每種輸入只會(huì)對(duì)應(yīng)一個(gè)答案经备。但是拭抬,數(shù)組中同一個(gè)元素不能使用兩遍。
示例:
給定 nums = [2, 7, 11, 15], target = 9
因?yàn)?nums[0] + nums[1] = 2 + 7 = 9
所以返回 [0, 1]
想法:
利用字典查找Key方式來(lái)解決
代碼
public int[] TwoSum(int[] nums, int target)
{
if (nums.Length < 2) return null;
Dictionary<int, int> dic = new Dictionary<int, int>();
for (int i = 0; i < nums.Length; i++)
{
if (dic.ContainsKey(nums[i]))
{
return new int[] { dic[nums[i]], i };
}
if(!dic.ContainsKey(target - nums[i]))
{
dic.Add(target - nums[i], i);
}
}
return null;
}