给定一个整数数组 nums 和一个目标值 target,请给出该数组中和为目标值的两个元素的下标。
时间: 2023-08-14 22:27:13 浏览: 138
两数之和 给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个
好的,这是一道经典的算法题,我很乐意回答。题目要求在给定的数组中找到两个数,它们的和等于目标值。可以使用哈希表来解决这个问题,具体步骤如下:
1. 遍历数组,对于每个元素,计算出目标值与该元素的差值。
2. 判断差值是否在哈希表中,如果在,说明已经找到了两个数,它们的和等于目标值,直接返回它们的下标;如果不在,将当前元素及其下标存入哈希表中。
下面是代码实现:
```python
def twoSum(nums, target):
"""
:type nums: List[int]
:type target: int
:rtype: List[int]
"""
hash_table = {}
for i in range(len(nums)):
complement = target - nums[i]
if complement in hash_table:
return [hash_table[complement], i]
hash_table[nums[i]] = i
return None
```
时间复杂度为 O(n),空间复杂度为 O(n)。
阅读全文