题目
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.
Example:
Given nums = [2, 7, 11, 15], target = 9,
Because nums[0] + nums[1] = 2 + 7 = 9,
return [0, 1]
|
代码
public class Solution { public int[] TwoSum(int[] nums, int target) { var result = new int[2]; for(var i = 0; i < nums.Length - 1; i++) { for (var j = i + 1; j < nums.Length; j++) { if (nums[i] + nums[j] = target) { result[0] = i; result[1] = j; return result; } } } return result; } }
public class Solution { public int[] TwoSum(int[] nums, int target) { var keyValuePair = new Dictionary<int, int>(); var result = new int[2]; for(var i=0; i < nums.Length; i++) { if(keyValuePair.ContainsKey(target-nums[i])) { result[0] = keyValuePair[target-nums[i]]; result[1] = i; return result; }else if (!keyValuePair.ContainsKey(nums[i])) { keyValuePair.Add(nums[i], i); } } return result; } }
|