给定一个整数数组 nums
和一个目标值 target
,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。
private void button1_Click(object sender, EventArgs e)
{
int[] nums ={ 2, 4, 6, 44, 22, 11, 55, 88, 9, 10 };
int target = 12;
int[] arr = SoluSum(nums, target);
}
public int[] TwoSum(int[] nums, int target)
{
int[] arr = new int[2];
for (int i = 0; i < nums.Length; i++)
{
for (int j = i + 1; j < nums.Length; j++)
{
if (nums[i] + nums[j] == target)
{
arr = new int[] { i, j };
break;
}
}
}
return arr;
}
public int[] SoluSum(int[] nums, int target)
{
int[] arr = new int[2];
Dictionary<int, int> dic = new Dictionary<int, int>();
for (int i = 0; i < nums.Length; i++) {
int k=target-nums[i];
if (dic.ContainsKey(k)) {
int j = int.Parse(dic[k].ToString()); //获取dic的值 加上本次循环的次数
arr = new int[] { j, i };
break;
}
dic[nums[i]] = i;
}
return arr;
}
联系客服