给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。用python实现
时间: 2023-08-14 12:12:58 浏览: 91
可以使用哈希表来解决这个问题。具体来说,对于数组中的每个元素,我们可以通过计算 target 与该元素的差值来确定另一个元素是否存在。然后使用哈希表来检查该元素是否已经存在于表中。
Python代码实现如下:
```python
def twoSum(nums, target):
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
```
在上面的代码中,我们首先创建了一个空的哈希表 hash_table,用于存储每个元素的值和索引。然后,我们遍历数组中的每个元素,并计算 target 与该元素的差值 complement。如果 complement 已经存在于哈希表中,则表示我们已经找到了另一个元素,它的索引存储在哈希表中。我们可以直接返回这两个索引。否则,我们将当前元素的值和索引存储在哈希表中,以便后续查找。
下面是一个示例,用于演示如何使用上面的函数:
```python
nums = [2, 7, 11, 15]
target = 9
print(twoSum(nums, target)) # 输出 [0, 1]
```
在上面的示例中,给定数组 nums 和目标值 target,函数返回了两个元素的索引 [0, 1],它们的值分别为 2 和 7,它们的和为 9。
阅读全文