给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素 使用c#
时间: 2023-09-26 08:11:09 浏览: 74
两数之和:在该数组中找出和为目标值的那两个整数,并返回他们的数组下标
以下是使用 C# 的实现方法:
```csharp
public int[] TwoSum(int[] nums, int target) {
// 创建一个字典,用于存储每个数字对应的下标
Dictionary<int, int> dict = new Dictionary<int, int>();
// 遍历数组
for (int i = 0; i < nums.Length; i++) {
int complement = target - nums[i];
// 如果在字典中找到了与当前数字相加等于目标值的数字
if (dict.ContainsKey(complement)) {
// 返回它们的下标
return new int[] { dict[complement], i };
}
// 否则将当前数字存入字典
dict[nums[i]] = i;
}
// 如果没有找到符合条件的数字,返回空数组
return new int[0];
}
```
该方法的时间复杂度为 O(n),空间复杂度为 O(n),其中 n 是数组的长度。该方法利用了字典的查找操作是常数时间的特性,将查找的时间复杂度从 O(n) 降低至 O(1)。
阅读全文